/* Generated by Cython 0.25 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "depends": [
            "/tmp/pip-install-9i_72p5f/cython_58c0ae716fd246eb8843b3dfd03bc38a/Cython/Compiler/Parsing.pxd"
        ]
    },
    "module_name": "Cython.Compiler.Parsing"
}
END: Cython Metadata */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
    #error Cython requires Python 2.6+ or Python 3.2+.
#else
#define CYTHON_ABI "0_25"
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x03030000 || (PY_MAJOR_VERSION == 2 && PY_VERSION_HEX >= 0x02070000)
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
  #undef SHIFT
  #undef BASE
  #undef MASK
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_FASTCALL
  #define METH_FASTCALL 0x80
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args,
                                              Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)

#ifndef CYTHON_INLINE
  #if defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif


#define __PYX_ERR(f_index, lineno, Ln_error) \
{ \
  __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \
}

#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#endif

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__Cython__Compiler__Parsing
#define __PYX_HAVE_API__Cython__Compiler__Parsing
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#ifdef PYREX_WITHOUT_ASSERTIONS
#define CYTHON_WITHOUT_ASSERTIONS
#endif

#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER) && defined (_M_X64)
    #define __Pyx_sst_abs(value) _abs64(value)
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#if PY_MAJOR_VERSION < 3
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
{
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#else
#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
#endif
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */

static PyObject *__pyx_m;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "Cython/Compiler/Parsing.py",
  "Cython/Plex/Actions.pxd",
  "Cython/Plex/Scanners.pxd",
  "Cython/Compiler/Scanning.pxd",
};

/*--- Type declarations ---*/
struct __pyx_obj_6Cython_4Plex_7Actions_Action;
struct __pyx_obj_6Cython_4Plex_7Actions_Return;
struct __pyx_obj_6Cython_4Plex_7Actions_Call;
struct __pyx_obj_6Cython_4Plex_7Actions_Begin;
struct __pyx_obj_6Cython_4Plex_7Actions_Ignore;
struct __pyx_obj_6Cython_4Plex_7Actions_Text;
struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner;
struct __pyx_obj_6Cython_8Compiler_8Scanning_Method;
struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope;
struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner;
struct __pyx_opt_args_6Cython_4Plex_8Scanners_7Scanner_produce;

/* "Plex/Scanners.pxd":45
 * 
 *     cdef begin(self, state)
 *     cdef produce(self, value, text = *)             # <<<<<<<<<<<<<<
 */
struct __pyx_opt_args_6Cython_4Plex_8Scanners_7Scanner_produce {
  int __pyx_n;
  PyObject *text;
};
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect;
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_keyword;
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expected;
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline;

/* "Scanning.pxd":58
 *     #cpdef put_back(self, sy, systring)
 *     #cdef unread(self, token, value)
 *     cdef bint expect(self, what, message = *) except -2             # <<<<<<<<<<<<<<
 *     cdef expect_keyword(self, what, message = *)
 *     cdef expected(self, what, message = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect {
  int __pyx_n;
  PyObject *message;
};

/* "Scanning.pxd":59
 *     #cdef unread(self, token, value)
 *     cdef bint expect(self, what, message = *) except -2
 *     cdef expect_keyword(self, what, message = *)             # <<<<<<<<<<<<<<
 *     cdef expected(self, what, message = *)
 *     cdef expect_indent(self)
 */
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_keyword {
  int __pyx_n;
  PyObject *message;
};

/* "Scanning.pxd":60
 *     cdef bint expect(self, what, message = *) except -2
 *     cdef expect_keyword(self, what, message = *)
 *     cdef expected(self, what, message = *)             # <<<<<<<<<<<<<<
 *     cdef expect_indent(self)
 *     cdef expect_dedent(self)
 */
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expected {
  int __pyx_n;
  PyObject *message;
};

/* "Scanning.pxd":63
 *     cdef expect_indent(self)
 *     cdef expect_dedent(self)
 *     cdef expect_newline(self, message=*, bint ignore_semicolon=*)             # <<<<<<<<<<<<<<
 *     cdef int enter_async(self) except -1
 *     cdef int exit_async(self) except -1
 */
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline {
  int __pyx_n;
  PyObject *message;
  int ignore_semicolon;
};
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_module;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_code;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_ident;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_lambdef;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_opt_string_literal;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_expr_list;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_pass_statement;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_statement;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement_list;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_complex_base_type;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_simple_base_type;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_list;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_decl;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_py_arg_decl;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree;
struct __pyx_ctuple_Py_ssize_t__and_Py_ssize_t;
typedef struct __pyx_ctuple_Py_ssize_t__and_Py_ssize_t __pyx_ctuple_Py_ssize_t__and_Py_ssize_t;

/* "Cython/Compiler/Parsing.pxd":8
 * from .Scanning cimport PyrexScanner
 * 
 * ctypedef object (*p_sub_expr_func)(PyrexScanner obj)             # <<<<<<<<<<<<<<
 * 
 * # entry points
 */
typedef PyObject *(*__pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);

/* "Cython/Compiler/Parsing.pxd":12
 * # entry points
 * 
 * cpdef p_module(PyrexScanner s, pxd, full_module_name, ctx=*)             # <<<<<<<<<<<<<<
 * cpdef p_code(PyrexScanner s, level= *, ctx=*)
 * 
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_module {
  int __pyx_n;
  PyObject *ctx;
};

/* "Cython/Compiler/Parsing.pxd":13
 * 
 * cpdef p_module(PyrexScanner s, pxd, full_module_name, ctx=*)
 * cpdef p_code(PyrexScanner s, level= *, ctx=*)             # <<<<<<<<<<<<<<
 * 
 * # internal parser states
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_code {
  int __pyx_n;
  PyObject *level;
  PyObject *ctx;
};

/* "Cython/Compiler/Parsing.pxd":17
 * # internal parser states
 * 
 * cdef p_ident(PyrexScanner s, message =*)             # <<<<<<<<<<<<<<
 * cdef p_ident_list(PyrexScanner s)
 * 
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_ident {
  int __pyx_n;
  PyObject *message;
};

/* "Cython/Compiler/Parsing.pxd":22
 * cdef tuple p_binop_operator(PyrexScanner s)
 * cdef p_binop_expr(PyrexScanner s, ops, p_sub_expr_func p_sub_expr)
 * cdef p_lambdef(PyrexScanner s, bint allow_conditional=*)             # <<<<<<<<<<<<<<
 * cdef p_lambdef_nocond(PyrexScanner s)
 * cdef p_test(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_lambdef {
  int __pyx_n;
  int allow_conditional;
};

/* "Cython/Compiler/Parsing.pxd":51
 * cdef p_new_expr(PyrexScanner s)
 * cdef p_trailer(PyrexScanner s, node1)
 * cdef p_call_parse_args(PyrexScanner s, bint allow_genexp = *)             # <<<<<<<<<<<<<<
 * cdef p_call_build_packed_args(pos, positional_args, keyword_args)
 * cdef p_call(PyrexScanner s, function)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args {
  int __pyx_n;
  int allow_genexp;
};

/* "Cython/Compiler/Parsing.pxd":60
 * cdef expect_ellipsis(PyrexScanner s)
 * cdef make_slice_nodes(pos, subscripts)
 * cpdef make_slice_node(pos, start, stop = *, step = *)             # <<<<<<<<<<<<<<
 * cdef p_atom(PyrexScanner s)
 * @cython.locals(value=unicode)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node {
  int __pyx_n;
  PyObject *stop;
  PyObject *step;
};

/* "Cython/Compiler/Parsing.pxd":67
 * cdef wrap_compile_time_constant(pos, value)
 * cdef p_cat_string_literal(PyrexScanner s)
 * cdef p_opt_string_literal(PyrexScanner s, required_type=*)             # <<<<<<<<<<<<<<
 * cdef bint check_for_non_ascii_characters(unicode string)
 * @cython.locals(systr=unicode, is_python3_source=bint, is_raw=bint)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_opt_string_literal {
  int __pyx_n;
  PyObject *required_type;
};

/* "Cython/Compiler/Parsing.pxd":70
 * cdef bint check_for_non_ascii_characters(unicode string)
 * @cython.locals(systr=unicode, is_python3_source=bint, is_raw=bint)
 * cdef p_string_literal(PyrexScanner s, kind_override=*)             # <<<<<<<<<<<<<<
 * @cython.locals(i=Py_ssize_t, size=Py_ssize_t)
 * cdef list p_f_string(PyrexScanner s, unicode_value, pos)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal {
  int __pyx_n;
  PyObject *kind_override;
};

/* "Cython/Compiler/Parsing.pxd":81
 * cdef p_dict_or_set_maker(PyrexScanner s)
 * cdef p_backquote_expr(PyrexScanner s)
 * cdef p_simple_expr_list(PyrexScanner s, expr=*)             # <<<<<<<<<<<<<<
 * cdef p_test_or_starred_expr_list(PyrexScanner s, expr=*)
 * cdef p_testlist(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_expr_list {
  int __pyx_n;
  PyObject *expr;
};

/* "Cython/Compiler/Parsing.pxd":82
 * cdef p_backquote_expr(PyrexScanner s)
 * cdef p_simple_expr_list(PyrexScanner s, expr=*)
 * cdef p_test_or_starred_expr_list(PyrexScanner s, expr=*)             # <<<<<<<<<<<<<<
 * cdef p_testlist(PyrexScanner s)
 * cdef p_testlist_star_expr(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list {
  int __pyx_n;
  PyObject *expr;
};

/* "Cython/Compiler/Parsing.pxd":100
 * cdef p_exec_statement(PyrexScanner s)
 * cdef p_del_statement(PyrexScanner s)
 * cdef p_pass_statement(PyrexScanner s, bint with_newline = *)             # <<<<<<<<<<<<<<
 * cdef p_break_statement(PyrexScanner s)
 * cdef p_continue_statement(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_pass_statement {
  int __pyx_n;
  int with_newline;
};

/* "Cython/Compiler/Parsing.pxd":106
 * cdef p_raise_statement(PyrexScanner s)
 * cdef p_import_statement(PyrexScanner s)
 * cdef p_from_import_statement(PyrexScanner s, bint first_statement = *)             # <<<<<<<<<<<<<<
 * cdef p_imported_name(PyrexScanner s, bint is_cimport)
 * cdef p_dotted_name(PyrexScanner s, bint as_allowed)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement {
  int __pyx_n;
  int first_statement;
};

/* "Cython/Compiler/Parsing.pxd":115
 * cdef p_else_clause(PyrexScanner s)
 * cdef p_while_statement(PyrexScanner s)
 * cdef p_for_statement(PyrexScanner s, bint is_async=*)             # <<<<<<<<<<<<<<
 * cdef dict p_for_bounds(PyrexScanner s, bint allow_testlist=*, bint is_async=*)
 * cdef p_for_from_relation(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_statement {
  int __pyx_n;
  int is_async;
};

/* "Cython/Compiler/Parsing.pxd":116
 * cdef p_while_statement(PyrexScanner s)
 * cdef p_for_statement(PyrexScanner s, bint is_async=*)
 * cdef dict p_for_bounds(PyrexScanner s, bint allow_testlist=*, bint is_async=*)             # <<<<<<<<<<<<<<
 * cdef p_for_from_relation(PyrexScanner s)
 * cdef p_for_from_step(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds {
  int __pyx_n;
  int allow_testlist;
  int is_async;
};

/* "Cython/Compiler/Parsing.pxd":121
 * cdef p_target(PyrexScanner s, terminator)
 * cdef p_for_target(PyrexScanner s)
 * cdef p_for_iterator(PyrexScanner s, bint allow_testlist=*, bint is_async=*)             # <<<<<<<<<<<<<<
 * cdef p_try_statement(PyrexScanner s)
 * cdef p_except_clause(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator {
  int __pyx_n;
  int allow_testlist;
  int is_async;
};

/* "Cython/Compiler/Parsing.pxd":126
 * cdef p_include_statement(PyrexScanner s, ctx)
 * cdef p_with_statement(PyrexScanner s)
 * cdef p_with_items(PyrexScanner s, bint is_async=*)             # <<<<<<<<<<<<<<
 * cdef p_with_template(PyrexScanner s)
 * cdef p_simple_statement(PyrexScanner s, bint first_statement = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items {
  int __pyx_n;
  int is_async;
};

/* "Cython/Compiler/Parsing.pxd":128
 * cdef p_with_items(PyrexScanner s, bint is_async=*)
 * cdef p_with_template(PyrexScanner s)
 * cdef p_simple_statement(PyrexScanner s, bint first_statement = *)             # <<<<<<<<<<<<<<
 * cdef p_simple_statement_list(PyrexScanner s, ctx, bint first_statement = *)
 * cdef p_compile_time_expr(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement {
  int __pyx_n;
  int first_statement;
};

/* "Cython/Compiler/Parsing.pxd":129
 * cdef p_with_template(PyrexScanner s)
 * cdef p_simple_statement(PyrexScanner s, bint first_statement = *)
 * cdef p_simple_statement_list(PyrexScanner s, ctx, bint first_statement = *)             # <<<<<<<<<<<<<<
 * cdef p_compile_time_expr(PyrexScanner s)
 * cdef p_DEF_statement(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement_list {
  int __pyx_n;
  int first_statement;
};

/* "Cython/Compiler/Parsing.pxd":133
 * cdef p_DEF_statement(PyrexScanner s)
 * cdef p_IF_statement(PyrexScanner s, ctx)
 * cdef p_statement(PyrexScanner s, ctx, bint first_statement = *)             # <<<<<<<<<<<<<<
 * cdef p_statement_list(PyrexScanner s, ctx, bint first_statement = *)
 * cdef p_suite(PyrexScanner s, ctx = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement {
  int __pyx_n;
  int first_statement;
};

/* "Cython/Compiler/Parsing.pxd":134
 * cdef p_IF_statement(PyrexScanner s, ctx)
 * cdef p_statement(PyrexScanner s, ctx, bint first_statement = *)
 * cdef p_statement_list(PyrexScanner s, ctx, bint first_statement = *)             # <<<<<<<<<<<<<<
 * cdef p_suite(PyrexScanner s, ctx = *)
 * cdef tuple p_suite_with_docstring(PyrexScanner s, ctx, bint with_doc_only=*)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list {
  int __pyx_n;
  int first_statement;
};

/* "Cython/Compiler/Parsing.pxd":135
 * cdef p_statement(PyrexScanner s, ctx, bint first_statement = *)
 * cdef p_statement_list(PyrexScanner s, ctx, bint first_statement = *)
 * cdef p_suite(PyrexScanner s, ctx = *)             # <<<<<<<<<<<<<<
 * cdef tuple p_suite_with_docstring(PyrexScanner s, ctx, bint with_doc_only=*)
 * cdef tuple _extract_docstring(node)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite {
  int __pyx_n;
  PyObject *ctx;
};

/* "Cython/Compiler/Parsing.pxd":136
 * cdef p_statement_list(PyrexScanner s, ctx, bint first_statement = *)
 * cdef p_suite(PyrexScanner s, ctx = *)
 * cdef tuple p_suite_with_docstring(PyrexScanner s, ctx, bint with_doc_only=*)             # <<<<<<<<<<<<<<
 * cdef tuple _extract_docstring(node)
 * cdef p_positional_and_keyword_args(PyrexScanner s, end_sy_set, templates = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring {
  int __pyx_n;
  int with_doc_only;
};

/* "Cython/Compiler/Parsing.pxd":138
 * cdef tuple p_suite_with_docstring(PyrexScanner s, ctx, bint with_doc_only=*)
 * cdef tuple _extract_docstring(node)
 * cdef p_positional_and_keyword_args(PyrexScanner s, end_sy_set, templates = *)             # <<<<<<<<<<<<<<
 * 
 * cpdef p_c_base_type(PyrexScanner s, bint self_flag = *, bint nonempty = *, templates = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args {
  int __pyx_n;
  PyObject *templates;
};

/* "Cython/Compiler/Parsing.pxd":140
 * cdef p_positional_and_keyword_args(PyrexScanner s, end_sy_set, templates = *)
 * 
 * cpdef p_c_base_type(PyrexScanner s, bint self_flag = *, bint nonempty = *, templates = *)             # <<<<<<<<<<<<<<
 * cdef p_calling_convention(PyrexScanner s)
 * cdef p_c_complex_base_type(PyrexScanner s, templates = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type {
  int __pyx_n;
  int self_flag;
  int nonempty;
  PyObject *templates;
};

/* "Cython/Compiler/Parsing.pxd":142
 * cpdef p_c_base_type(PyrexScanner s, bint self_flag = *, bint nonempty = *, templates = *)
 * cdef p_calling_convention(PyrexScanner s)
 * cdef p_c_complex_base_type(PyrexScanner s, templates = *)             # <<<<<<<<<<<<<<
 * cdef p_c_simple_base_type(PyrexScanner s, bint self_flag, bint nonempty, templates = *)
 * cdef p_buffer_or_template(PyrexScanner s, base_type_node, templates)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_complex_base_type {
  int __pyx_n;
  PyObject *templates;
};

/* "Cython/Compiler/Parsing.pxd":143
 * cdef p_calling_convention(PyrexScanner s)
 * cdef p_c_complex_base_type(PyrexScanner s, templates = *)
 * cdef p_c_simple_base_type(PyrexScanner s, bint self_flag, bint nonempty, templates = *)             # <<<<<<<<<<<<<<
 * cdef p_buffer_or_template(PyrexScanner s, base_type_node, templates)
 * cdef p_bracketed_base_type(PyrexScanner s, base_type_node, nonempty, empty)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_simple_base_type {
  int __pyx_n;
  PyObject *templates;
};

/* "Cython/Compiler/Parsing.pxd":155
 * cdef p_sign_and_longness(PyrexScanner s)
 * cdef p_opt_cname(PyrexScanner s)
 * cpdef p_c_declarator(PyrexScanner s, ctx = *, bint empty = *, bint is_type = *, bint cmethod_flag = *,             # <<<<<<<<<<<<<<
 *                    bint assignable = *, bint nonempty = *,
 *                    bint calling_convention_allowed = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator {
  int __pyx_n;
  PyObject *ctx;
  int empty;
  int is_type;
  int cmethod_flag;
  int assignable;
  int nonempty;
  int calling_convention_allowed;
};

/* "Cython/Compiler/Parsing.pxd":165
 * cdef p_with_gil(PyrexScanner s)
 * cdef p_exception_value_clause(PyrexScanner s)
 * cpdef p_c_arg_list(PyrexScanner s, ctx = *, bint in_pyfunc = *, bint cmethod_flag = *,             # <<<<<<<<<<<<<<
 *                    bint nonempty_declarators = *, bint kw_only = *, bint annotated = *)
 * cdef p_optional_ellipsis(PyrexScanner s)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_list {
  int __pyx_n;
  PyObject *ctx;
  int in_pyfunc;
  int cmethod_flag;
  int nonempty_declarators;
  int kw_only;
  int annotated;
};

/* "Cython/Compiler/Parsing.pxd":168
 *                    bint nonempty_declarators = *, bint kw_only = *, bint annotated = *)
 * cdef p_optional_ellipsis(PyrexScanner s)
 * cdef p_c_arg_decl(PyrexScanner s, ctx, in_pyfunc, bint cmethod_flag = *, bint nonempty = *, bint kw_only = *, bint annotated = *)             # <<<<<<<<<<<<<<
 * cdef p_api(PyrexScanner s)
 * cdef p_cdef_statement(PyrexScanner s, ctx)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_decl {
  int __pyx_n;
  int cmethod_flag;
  int nonempty;
  int kw_only;
  int annotated;
};

/* "Cython/Compiler/Parsing.pxd":184
 * cdef p_ctypedef_statement(PyrexScanner s, ctx)
 * cdef p_decorators(PyrexScanner s)
 * cdef p_def_statement(PyrexScanner s, list decorators=*, bint is_async_def=*)             # <<<<<<<<<<<<<<
 * cdef p_varargslist(PyrexScanner s, terminator=*, bint annotated = *)
 * cdef p_py_arg_decl(PyrexScanner s, bint annotated = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement {
  int __pyx_n;
  PyObject *decorators;
  int is_async_def;
};

/* "Cython/Compiler/Parsing.pxd":185
 * cdef p_decorators(PyrexScanner s)
 * cdef p_def_statement(PyrexScanner s, list decorators=*, bint is_async_def=*)
 * cdef p_varargslist(PyrexScanner s, terminator=*, bint annotated = *)             # <<<<<<<<<<<<<<
 * cdef p_py_arg_decl(PyrexScanner s, bint annotated = *)
 * cdef p_class_statement(PyrexScanner s, decorators)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist {
  int __pyx_n;
  PyObject *terminator;
  int annotated;
};

/* "Cython/Compiler/Parsing.pxd":186
 * cdef p_def_statement(PyrexScanner s, list decorators=*, bint is_async_def=*)
 * cdef p_varargslist(PyrexScanner s, terminator=*, bint annotated = *)
 * cdef p_py_arg_decl(PyrexScanner s, bint annotated = *)             # <<<<<<<<<<<<<<
 * cdef p_class_statement(PyrexScanner s, decorators)
 * cdef p_c_class_definition(PyrexScanner s, pos,  ctx)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_py_arg_decl {
  int __pyx_n;
  int annotated;
};

/* "Cython/Compiler/Parsing.py":3653
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     ind = "  " * level
 *     if node:
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree {
  int __pyx_n;
  PyObject *key;
};

/* "Cython/Compiler/Parsing.py":2618
 *     # Unfortunately there's no good way to handle this, as a subsequent call
 *     # to next() will not advance the position until it reads a new token.
 *     position = s.start_line, s.start_col             # <<<<<<<<<<<<<<
 *     result = looking_at_expr(s) == u'('
 *     if not result:
 */
struct __pyx_ctuple_Py_ssize_t__and_Py_ssize_t {
  Py_ssize_t f0;
  Py_ssize_t f1;
};

/* "Cython/Plex/Actions.pxd":2
 * 
 * cdef class Action:             # <<<<<<<<<<<<<<
 *   cdef perform(self, token_stream, text)
 *   cpdef same_as(self, other)
 */
struct __pyx_obj_6Cython_4Plex_7Actions_Action {
  PyObject_HEAD
  struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action *__pyx_vtab;
};


/* "Cython/Plex/Actions.pxd":6
 *   cpdef same_as(self, other)
 * 
 * cdef class Return(Action):             # <<<<<<<<<<<<<<
 *   cdef object value
 *   cdef perform(self, token_stream, text)
 */
struct __pyx_obj_6Cython_4Plex_7Actions_Return {
  struct __pyx_obj_6Cython_4Plex_7Actions_Action __pyx_base;
  PyObject *value;
};


/* "Cython/Plex/Actions.pxd":11
 *   cpdef same_as(self, other)
 * 
 * cdef class Call(Action):             # <<<<<<<<<<<<<<
 *   cdef object function
 *   cdef perform(self, token_stream, text)
 */
struct __pyx_obj_6Cython_4Plex_7Actions_Call {
  struct __pyx_obj_6Cython_4Plex_7Actions_Action __pyx_base;
  PyObject *function;
};


/* "Cython/Plex/Actions.pxd":16
 *   cpdef same_as(self, other)
 * 
 * cdef class Begin(Action):             # <<<<<<<<<<<<<<
 *   cdef object state_name
 *   cdef perform(self, token_stream, text)
 */
struct __pyx_obj_6Cython_4Plex_7Actions_Begin {
  struct __pyx_obj_6Cython_4Plex_7Actions_Action __pyx_base;
  PyObject *state_name;
};


/* "Cython/Plex/Actions.pxd":21
 *   cpdef same_as(self, other)
 * 
 * cdef class Ignore(Action):             # <<<<<<<<<<<<<<
 *   cdef perform(self, token_stream, text)
 * 
 */
struct __pyx_obj_6Cython_4Plex_7Actions_Ignore {
  struct __pyx_obj_6Cython_4Plex_7Actions_Action __pyx_base;
};


/* "Cython/Plex/Actions.pxd":24
 *   cdef perform(self, token_stream, text)
 * 
 * cdef class Text(Action):             # <<<<<<<<<<<<<<
 *   cdef perform(self, token_stream, text)
 */
struct __pyx_obj_6Cython_4Plex_7Actions_Text {
  struct __pyx_obj_6Cython_4Plex_7Actions_Action __pyx_base;
};


/* "Plex/Scanners.pxd":7
 * from Cython.Plex.Actions cimport Action
 * 
 * cdef class Scanner:             # <<<<<<<<<<<<<<
 * 
 *     cdef public lexicon
 */
struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner {
  PyObject_HEAD
  struct __pyx_vtabstruct_6Cython_4Plex_8Scanners_Scanner *__pyx_vtab;
  PyObject *lexicon;
  PyObject *stream;
  PyObject *name;
  PyObject *buffer;
  Py_ssize_t buf_start_pos;
  Py_ssize_t next_pos;
  Py_ssize_t cur_pos;
  Py_ssize_t cur_line;
  Py_ssize_t cur_line_start;
  Py_ssize_t start_pos;
  Py_ssize_t start_line;
  Py_ssize_t start_col;
  PyObject *text;
  PyObject *initial_state;
  PyObject *state_name;
  PyObject *queue;
  int trace;
  PyObject *cur_char;
  long input_state;
  PyObject *level;
};


/* "Scanning.pxd":12
 * cdef initial_compile_time_env()
 * 
 * cdef class Method:             # <<<<<<<<<<<<<<
 *     cdef object name
 *     cdef dict kwargs
 */
struct __pyx_obj_6Cython_8Compiler_8Scanning_Method {
  PyObject_HEAD
  PyObject *name;
  PyObject *kwargs;
  PyObject *__name__;
};


/* "Scanning.pxd":18
 * 
 * @cython.final
 * cdef class CompileTimeScope:             # <<<<<<<<<<<<<<
 *     cdef public dict entries
 *     cdef public CompileTimeScope outer
 */
struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope {
  PyObject_HEAD
  struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_CompileTimeScope *__pyx_vtab;
  PyObject *entries;
  struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *outer;
};


/* "Scanning.pxd":26
 * 
 * @cython.final
 * cdef class PyrexScanner(Scanner):             # <<<<<<<<<<<<<<
 *     cdef public context
 *     cdef public list included_files
 */
struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner {
  struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner __pyx_base;
  PyObject *context;
  PyObject *included_files;
  struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *compile_time_env;
  int compile_time_eval;
  int compile_time_expr;
  int parse_comments;
  int in_python_file;
  PyObject *source_encoding;
  PyObject *keywords;
  PyObject *indentation_stack;
  PyObject *indentation_char;
  int bracket_nesting_level;
  int async_enabled;
  PyObject *sy;
  PyObject *systring;
};



/* "Cython/Plex/Actions.pxd":2
 * 
 * cdef class Action:             # <<<<<<<<<<<<<<
 *   cdef perform(self, token_stream, text)
 *   cpdef same_as(self, other)
 */

struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action {
  PyObject *(*perform)(struct __pyx_obj_6Cython_4Plex_7Actions_Action *, PyObject *, PyObject *);
  PyObject *(*same_as)(struct __pyx_obj_6Cython_4Plex_7Actions_Action *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action *__pyx_vtabptr_6Cython_4Plex_7Actions_Action;


/* "Cython/Plex/Actions.pxd":6
 *   cpdef same_as(self, other)
 * 
 * cdef class Return(Action):             # <<<<<<<<<<<<<<
 *   cdef object value
 *   cdef perform(self, token_stream, text)
 */

struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Return {
  struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action __pyx_base;
};
static struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Return *__pyx_vtabptr_6Cython_4Plex_7Actions_Return;


/* "Cython/Plex/Actions.pxd":11
 *   cpdef same_as(self, other)
 * 
 * cdef class Call(Action):             # <<<<<<<<<<<<<<
 *   cdef object function
 *   cdef perform(self, token_stream, text)
 */

struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Call {
  struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action __pyx_base;
};
static struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Call *__pyx_vtabptr_6Cython_4Plex_7Actions_Call;


/* "Cython/Plex/Actions.pxd":16
 *   cpdef same_as(self, other)
 * 
 * cdef class Begin(Action):             # <<<<<<<<<<<<<<
 *   cdef object state_name
 *   cdef perform(self, token_stream, text)
 */

struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Begin {
  struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action __pyx_base;
};
static struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Begin *__pyx_vtabptr_6Cython_4Plex_7Actions_Begin;


/* "Cython/Plex/Actions.pxd":21
 *   cpdef same_as(self, other)
 * 
 * cdef class Ignore(Action):             # <<<<<<<<<<<<<<
 *   cdef perform(self, token_stream, text)
 * 
 */

struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Ignore {
  struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action __pyx_base;
};
static struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Ignore *__pyx_vtabptr_6Cython_4Plex_7Actions_Ignore;


/* "Cython/Plex/Actions.pxd":24
 *   cdef perform(self, token_stream, text)
 * 
 * cdef class Text(Action):             # <<<<<<<<<<<<<<
 *   cdef perform(self, token_stream, text)
 */

struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Text {
  struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action __pyx_base;
};
static struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Text *__pyx_vtabptr_6Cython_4Plex_7Actions_Text;


/* "Plex/Scanners.pxd":7
 * from Cython.Plex.Actions cimport Action
 * 
 * cdef class Scanner:             # <<<<<<<<<<<<<<
 * 
 *     cdef public lexicon
 */

struct __pyx_vtabstruct_6Cython_4Plex_8Scanners_Scanner {
  PyObject *(*next_char)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *);
  PyObject *(*read)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *, int __pyx_skip_dispatch);
  PyObject *(*scan_a_token)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *);
  PyObject *(*position)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *);
  PyObject *(*run_machine_inlined)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *);
  PyObject *(*begin)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *, PyObject *);
  PyObject *(*produce)(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *, PyObject *, struct __pyx_opt_args_6Cython_4Plex_8Scanners_7Scanner_produce *__pyx_optional_args);
};
static struct __pyx_vtabstruct_6Cython_4Plex_8Scanners_Scanner *__pyx_vtabptr_6Cython_4Plex_8Scanners_Scanner;


/* "Scanning.pxd":18
 * 
 * @cython.final
 * cdef class CompileTimeScope:             # <<<<<<<<<<<<<<
 *     cdef public dict entries
 *     cdef public CompileTimeScope outer
 */

struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_CompileTimeScope {
  PyObject *(*declare)(struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *, PyObject *, PyObject *);
  PyObject *(*lookup_here)(struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *, PyObject *);
  PyObject *(*lookup)(struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_CompileTimeScope *__pyx_vtabptr_6Cython_8Compiler_8Scanning_CompileTimeScope;


/* "Scanning.pxd":26
 * 
 * @cython.final
 * cdef class PyrexScanner(Scanner):             # <<<<<<<<<<<<<<
 *     cdef public context
 *     cdef public list included_files
 */

struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner {
  struct __pyx_vtabstruct_6Cython_4Plex_8Scanners_Scanner __pyx_base;
  long (*current_level)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
  PyObject *(*indentation_action)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*next)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
  PyObject *(*peek)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
  int (*expect)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect *__pyx_optional_args);
  PyObject *(*expect_keyword)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_keyword *__pyx_optional_args);
  PyObject *(*expected)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expected *__pyx_optional_args);
  PyObject *(*expect_indent)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
  PyObject *(*expect_dedent)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
  PyObject *(*expect_newline)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline *__pyx_optional_args);
  int (*enter_async)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
  int (*exit_async)(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *);
};
static struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_vtabptr_6Cython_8Compiler_8Scanning_PyrexScanner;

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* GetModuleGlobalName.proto */
static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name);

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* append.proto */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* GetItemIntUnicode.proto */
#define __Pyx_GetItemInt_Unicode(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Unicode_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "string index out of range"), (Py_UCS4)-1))
static CYTHON_INLINE Py_UCS4 __Pyx_GetItemInt_Unicode_Fast(PyObject* ustring, Py_ssize_t i,
                                                           int wraparound, int boundscheck);

/* PyUnicode_Substring.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
            PyObject* text, Py_ssize_t start, Py_ssize_t stop);

/* unicode_iter.proto */
static CYTHON_INLINE int __Pyx_init_unicode_iteration(
    PyObject* ustring, Py_ssize_t *length, void** data, int *kind);

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = PyThreadState_GET();
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* PyUnicodeContains.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_ContainsTF(PyObject* substring, PyObject* text, int eq) {
    int result = PyUnicode_Contains(text, substring);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* UnicodeAsUCS4.proto */
static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*);

/* object_ord.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyObject_Ord(c)\
    (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c))
#else
#define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c)
#endif
static long __Pyx__PyObject_Ord(PyObject* c);

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* SliceTupleAndList.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
#else
#define __Pyx_PyList_GetSlice(seq, start, stop)   PySequence_GetSlice(seq, start, stop)
#define __Pyx_PyTuple_GetSlice(seq, start, stop)  PySequence_GetSlice(seq, start, stop)
#endif

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, int inplace);
#else
#define __Pyx_PyInt_EqObjC(op1, op2, intval, inplace)\
    PyObject_RichCompare(op1, op2, Py_EQ)
    #endif

/* PyObjectLookupSpecial.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
#if PY_MAJOR_VERSION < 3
    if (unlikely(PyInstance_Check(obj)))
        return __Pyx_PyObject_GetAttrStr(obj, attr_name);
#endif
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#else
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* None.proto */
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);

/* ArgTypeTest.proto */
static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
    const char *name, int exact);

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            PyObject* args = PyTuple_Pack(1, key);
            if (likely(args))
                PyErr_SetObject(PyExc_KeyError, args);
            Py_XDECREF(args);
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#else
    #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#endif

/* DelItemInt.proto */
#define __Pyx_DelItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_DelItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_DelItem_Generic(o, to_py_func(i))))
static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j);
static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
                                               int is_list, int wraparound);

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** value1, PyObject** value2,
                                             int is_tuple, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyObject *dict);

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunction.proto */
#define __Pyx_CyFunction_USED 1
#include <structmember.h>
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\
    __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code)
static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* PyUCS4InUnicode.proto */
static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character);
static CYTHON_INLINE int __Pyx_PyUnicodeBufferContainsUCS4(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character);

/* ObjectAsUCS4.proto */
#define __Pyx_PyObject_AsPy_UCS4(x)\
    (likely(PyUnicode_Check(x)) ? __Pyx_PyUnicode_AsPy_UCS4(x) : __Pyx__PyObject_AsPy_UCS4(x))
static Py_UCS4 __Pyx__PyObject_AsPy_UCS4(PyObject*);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* FunctionExport.proto */
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);

/* PyIdentifierFromString.proto */
#if !defined(__Pyx_PyIdentifier_FromString)
#if PY_MAJOR_VERSION < 3
  #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
#else
  #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
#endif
#endif

/* ModuleImport.proto */
static PyObject *__Pyx_ImportModule(const char *name);

/* TypeImport.proto */
static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);

/* VoidPtrImport.proto */
static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);


/* Module declarations from 'cython' */

/* Module declarations from 'Cython.Plex.Actions' */
static PyTypeObject *__pyx_ptype_6Cython_4Plex_7Actions_Action = 0;
static PyTypeObject *__pyx_ptype_6Cython_4Plex_7Actions_Return = 0;
static PyTypeObject *__pyx_ptype_6Cython_4Plex_7Actions_Call = 0;
static PyTypeObject *__pyx_ptype_6Cython_4Plex_7Actions_Begin = 0;
static PyTypeObject *__pyx_ptype_6Cython_4Plex_7Actions_Ignore = 0;
static PyTypeObject *__pyx_ptype_6Cython_4Plex_7Actions_Text = 0;

/* Module declarations from 'Cython.Plex.Scanners' */
static PyTypeObject *__pyx_ptype_6Cython_4Plex_8Scanners_Scanner = 0;

/* Module declarations from 'Cython.Compiler.Scanning' */
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_8Scanning_Method = 0;
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_8Scanning_CompileTimeScope = 0;
static PyTypeObject *__pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner = 0;
static PyObject **__pyx_vp_6Cython_8Compiler_8Scanning_any_string_prefix = 0;
#define __pyx_v_6Cython_8Compiler_8Scanning_any_string_prefix (*__pyx_vp_6Cython_8Compiler_8Scanning_any_string_prefix)
static PyObject **__pyx_vp_6Cython_8Compiler_8Scanning_IDENT = 0;
#define __pyx_v_6Cython_8Compiler_8Scanning_IDENT (*__pyx_vp_6Cython_8Compiler_8Scanning_IDENT)

/* Module declarations from 'Cython.Compiler.Parsing' */
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_Nodes = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_EncodedString = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_bytes_literal = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_Future = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_Options = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_error = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_warning = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_Builtin = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_Utils = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_re = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing__unicode = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing__bytes = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_partial = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_reduce = 0;
static int __pyx_v_6Cython_8Compiler_7Parsing__IS_PY3;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_comparison_ops = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_expr_terminators = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_imported_name_kinds = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_statement_terminators = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_inequality_relations = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing_c_arg_list_terminators = 0;
static PyObject *__pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment = 0;
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_module(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_module *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_code(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_code *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ident(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_ident *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ident_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_binop_operator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, __pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_lambdef(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_lambdef *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_lambdef_nocond(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test_nocond(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_or_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_rassoc_binop_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, __pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_and_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_not_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comparison(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cascaded_cmp(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cmp_op(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_xor_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_and_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_shift_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_arith_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_term(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_factor(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing__p_factor(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_typecast(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_sizeof(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_yield_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_async_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_power(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_new_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_trailer(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args(PyObject *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_call(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_index(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_subscript_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_subscript(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_slice_element(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_expect_ellipsis(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_make_slice_node(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_atom(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_int_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_wrap_compile_time_constant(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_opt_string_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_opt_string_literal *__pyx_optional_args); /*proto*/
static int __pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_f_string(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_f_string_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, Py_ssize_t); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_list_maker(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comp_iter(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comp_if(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_dict_or_set_maker(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_backquote_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_simple_expr_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_expr_list *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_testlist(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_testlist_star_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_testlist_comp(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_genexp(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_global_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_nonlocal_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_expression_or_assignment(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_print_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_exec_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_del_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_pass_statement *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_break_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_continue_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_return_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_raise_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_import_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_from_import_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_imported_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_as_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_assert_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_if_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_if_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_else_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_while_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_statement *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_bounds(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_from_step(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_target(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_target(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_iterator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_try_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_except_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_include_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_items(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_template(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement_list *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_compile_time_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_DEF_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_IF_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_suite(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing__extract_docstring(PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_calling_convention(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_complex_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_complex_base_type *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int, int, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_simple_base_type *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_dotted_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_sign_and_longness(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_array_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, PyObject *, int); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, int, int, int, int, int); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_nogil(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_gil(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_exception_value_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_list *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_optional_ellipsis(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_decl(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_decl *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_api(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_block(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_extern_block(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_line(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_item(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_struct_or_union_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_fused_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_struct_enum(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_visibility(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_modifiers(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_decorators(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_def_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_varargslist(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_py_arg_decl(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_py_arg_decl *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_class_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_options(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_property_decl(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_doc_string(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ignorable_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_compiler_directive_comments(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_template_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_attribute(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree *__pyx_optional_args); /*proto*/
#define __Pyx_MODULE_NAME "Cython.Compiler.Parsing"
int __pyx_module_is_main_Cython__Compiler__Parsing = 0;

/* Implementation of 'Cython.Compiler.Parsing' */
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_Ellipsis;
static PyObject *__pyx_builtin_zip;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_AttributeError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_range;
static const char __pyx_k_[] = ",";
static const char __pyx_k_L[] = "L";
static const char __pyx_k_U[] = "U";
static const char __pyx_k_b[] = "b";
static const char __pyx_k_c[] = "c";
static const char __pyx_k_d[] = "d";
static const char __pyx_k_f[] = "f";
static const char __pyx_k_r[] = "r";
static const char __pyx_k_s[] = "(%s)";
static const char __pyx_k_u[] = "u";
static const char __pyx_k_IF[] = "IF";
static const char __pyx_k_LL[] = "LL";
static const char __pyx_k__2[] = "/";
static const char __pyx_k__3[] = ":";
static const char __pyx_k__6[] = "*";
static const char __pyx_k__7[] = "<>";
static const char __pyx_k__8[] = "!=";
static const char __pyx_k__9[] = "|";
static const char __pyx_k_as[] = "as";
static const char __pyx_k_by[] = "by";
static const char __pyx_k_if[] = "if";
static const char __pyx_k_in[] = "in";
static const char __pyx_k_io[] = "io";
static const char __pyx_k_is[] = "is";
static const char __pyx_k_or[] = "or";
static const char __pyx_k_re[] = "re";
static const char __pyx_k_ub[] = "ub";
static const char __pyx_k_Ctx[] = "Ctx";
static const char __pyx_k_DEF[] = "DEF";
static const char __pyx_k_EOF[] = "EOF";
static const char __pyx_k_INT[] = "INT";
static const char __pyx_k__11[] = "^";
static const char __pyx_k__13[] = "&";
static const char __pyx_k__15[] = "<<";
static const char __pyx_k__16[] = ">>";
static const char __pyx_k__18[] = "+";
static const char __pyx_k__19[] = "-";
static const char __pyx_k__21[] = "@";
static const char __pyx_k__22[] = "%";
static const char __pyx_k__23[] = "//";
static const char __pyx_k__25[] = "~";
static const char __pyx_k__26[] = "<";
static const char __pyx_k__28[] = "?";
static const char __pyx_k__29[] = ">";
static const char __pyx_k__30[] = "(";
static const char __pyx_k__31[] = ")";
static const char __pyx_k__36[] = "[";
static const char __pyx_k__37[] = ".";
static const char __pyx_k__38[] = "**";
static const char __pyx_k__40[] = "=";
static const char __pyx_k__43[] = "]";
static const char __pyx_k__47[] = "{";
  static const char __pyx_k__48[] = "`";
  static const char __pyx_k__50[] = "";
  static const char __pyx_k__54[] = "\"'";
  static const char __pyx_k__62[] = "\\";
  static const char __pyx_k__63[] = "\n";
  static const char __pyx_k__66[] = "{}";
static const char __pyx_k__67[] = "}";
static const char __pyx_k__71[] = "\r\n";
static const char __pyx_k__73[] = "\r";
static const char __pyx_k__76[] = "!";
static const char __pyx_k__83[] = "([-+*/%^&|]|<<|>>|\\*\\*|//|@)=";
static const char __pyx_k__96[] = ";";
static const char __pyx_k_add[] = "add";
static const char __pyx_k_and[] = "and";
static const char __pyx_k_api[] = "api";
static const char __pyx_k_arg[] = "arg";
static const char __pyx_k_ctx[] = "ctx";
static const char __pyx_k_def[] = "def";
static const char __pyx_k_del[] = "del";
static const char __pyx_k_doc[] = "doc";
static const char __pyx_k_for[] = "for";
static const char __pyx_k_gil[] = "gil";
static const char __pyx_k_int[] = "int";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_lhs[] = "lhs";
static const char __pyx_k_new[] = "new";
static const char __pyx_k_not[] = "not";
static const char __pyx_k_obj[] = "obj";
static const char __pyx_k_pos[] = "pos";
static const char __pyx_k_pxd[] = "pxd";
static const char __pyx_k_rhs[] = "rhs";
static const char __pyx_k_s_2[] = "s";
static const char __pyx_k_s_3[] = "%s: ";
static const char __pyx_k_s_4[] = "%s)\n";
static const char __pyx_k_s_5[] = "%s]\n";
static const char __pyx_k_s_s[] = "(%s @ %s\n";
static const char __pyx_k_set[] = "set";
static const char __pyx_k_sys[] = "sys";
static const char __pyx_k_tag[] = "tag";
static const char __pyx_k_try[] = "try";
static const char __pyx_k_zip[] = "zip";
static const char __pyx_k_ELIF[] = "ELIF";
static const char __pyx_k_ELSE[] = "ELSE";
static const char __pyx_k_IMAG[] = "IMAG";
static const char __pyx_k_NULL[] = "NULL";
static const char __pyx_k_Node[] = "Node";
static const char __pyx_k_None[] = "None";
static const char __pyx_k_True[] = "True";
static const char __pyx_k__120[] = "::";
static const char __pyx_k__121[] = "+-*/<=>!%&|([^~,";
static const char __pyx_k__122[] = "()";
static const char __pyx_k__123[] = "[]";
static const char __pyx_k__124[] = " ";
static const char __pyx_k__131[] = "->";
static const char __pyx_k__138[] = "  ";
static const char __pyx_k__139[] = "[\n";
static const char __pyx_k__145[] = "==";
static const char __pyx_k__146[] = ">=";
static const char __pyx_k__147[] = "<=";
static const char __pyx_k__161[] = "++";
static const char __pyx_k__162[] = "--";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_axes[] = "axes";
static const char __pyx_k_base[] = "base";
static const char __pyx_k_bint[] = "bint";
static const char __pyx_k_body[] = "body";
static const char __pyx_k_bool[] = "bool";
static const char __pyx_k_call[] = "__call__";
static const char __pyx_k_cdef[] = "cdef";
static const char __pyx_k_char[] = "char";
static const char __pyx_k_cond[] = "cond";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_elif[] = "elif";
static const char __pyx_k_else[] = "else";
static const char __pyx_k_enum[] = "enum";
static const char __pyx_k_exec[] = "exec";
static const char __pyx_k_exit[] = "__exit__";
static const char __pyx_k_expr[] = "expr";
static const char __pyx_k_from[] = "from";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_kind[] = "kind";
static const char __pyx_k_kwds[] = "kwds";
static const char __pyx_k_long[] = "long";
static const char __pyx_k_loop[] = "loop";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_node[] = "node";
static const char __pyx_k_or_2[] = " or ";
static const char __pyx_k_pass[] = "pass";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_step[] = "step";
static const char __pyx_k_stop[] = "stop";
static const char __pyx_k_test[] = "test";
static const char __pyx_k_type[] = "type";
static const char __pyx_k_void[] = "void";
static const char __pyx_k_with[] = "with";
static const char __pyx_k_CHARS[] = "CHARS";
static const char __pyx_k_FLOAT[] = "FLOAT";
static const char __pyx_k_False[] = "False";
static const char __pyx_k_IDENT[] = "IDENT";
static const char __pyx_k_Nodes[] = "Nodes";
static const char __pyx_k_Utils[] = "Utils";
static const char __pyx_k_ascii[] = "ascii";
static const char __pyx_k_async[] = "async";
static const char __pyx_k_await[] = "await";
static const char __pyx_k_bases[] = "bases";
static const char __pyx_k_break[] = "break";
static const char __pyx_k_bytes[] = "_bytes";
static const char __pyx_k_cause[] = "cause";
static const char __pyx_k_cdecl[] = "__cdecl";
static const char __pyx_k_class[] = "__class__";
static const char __pyx_k_cname[] = "cname";
static const char __pyx_k_const[] = "const";
static const char __pyx_k_cpdef[] = "cpdef";
static const char __pyx_k_doc_2[] = "__doc__";
static const char __pyx_k_empty[] = "empty";
static const char __pyx_k_enter[] = "__enter__";
static const char __pyx_k_error[] = "error";
static const char __pyx_k_fatal[] = "fatal";
static const char __pyx_k_float[] = "float";
static const char __pyx_k_fused[] = "fused";
static const char __pyx_k_group[] = "group";
static const char __pyx_k_index[] = "index";
static const char __pyx_k_items[] = "items";
static const char __pyx_k_level[] = "level";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_match[] = "match";
static const char __pyx_k_names[] = "names";
static const char __pyx_k_nogil[] = "nogil";
static const char __pyx_k_other[] = "other";
static const char __pyx_k_print[] = "print";
static const char __pyx_k_raise[] = "raise";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_s_s_2[] = "%s @ %s\n";
static const char __pyx_k_s_s_3[] = "%s%s\n";
static const char __pyx_k_short[] = "short";
static const char __pyx_k_split[] = "split";
static const char __pyx_k_start[] = "start";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_stats[] = "stats";
static const char __pyx_k_strip[] = "strip";
static const char __pyx_k_types[] = "types";
static const char __pyx_k_union[] = "union";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_while[] = "while";
static const char __pyx_k_write[] = "write";
static const char __pyx_k_yield[] = "yield";
static const char __pyx_k_DEDENT[] = "DEDENT";
static const char __pyx_k_ESCAPE[] = "ESCAPE";
static const char __pyx_k_Errors[] = "Errors";
static const char __pyx_k_Future[] = "Future";
static const char __pyx_k_append[] = "append";
static const char __pyx_k_assert[] = "assert";
static const char __pyx_k_bound1[] = "bound1";
static const char __pyx_k_bound2[] = "bound2";
static const char __pyx_k_braces[] = "braces";
static const char __pyx_k_dict_2[] = "dict";
static const char __pyx_k_double[] = "double";
static const char __pyx_k_exc_tb[] = "exc_tb";
static const char __pyx_k_except[] = "except";
static const char __pyx_k_extend[] = "extend";
static const char __pyx_k_extern[] = "extern";
static const char __pyx_k_future[] = "__future__";
static const char __pyx_k_global[] = "global";
static const char __pyx_k_import[] = "import";
static const char __pyx_k_in_pxd[] = "in_pxd";
static const char __pyx_k_inline[] = "inline";
static const char __pyx_k_is_not[] = "is_not";
static const char __pyx_k_lambda[] = "lambda";
static const char __pyx_k_lookup[] = "lookup";
static const char __pyx_k_lstrip[] = "lstrip";
static const char __pyx_k_module[] = "module";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_not_in[] = "not_in";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_p_code[] = "p_code";
static const char __pyx_k_packed[] = "packed";
static const char __pyx_k_public[] = "public";
static const char __pyx_k_reduce[] = "reduce";
static const char __pyx_k_return[] = "return";
static const char __pyx_k_rstrip[] = "rstrip";
static const char __pyx_k_signed[] = "signed";
static const char __pyx_k_size_t[] = "size_t";
static const char __pyx_k_sizeof[] = "sizeof";
static const char __pyx_k_stream[] = "stream";
static const char __pyx_k_struct[] = "struct";
static const char __pyx_k_target[] = "target";
static const char __pyx_k_test_2[] = "__test__";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_values[] = "values";
static const char __pyx_k_Builtin[] = "Builtin";
static const char __pyx_k_DefNode[] = "DefNode";
static const char __pyx_k_IntNode[] = "IntNode";
static const char __pyx_k_NEWLINE[] = "NEWLINE";
static const char __pyx_k_NotNode[] = "NotNode";
static const char __pyx_k_Options[] = "Options";
static const char __pyx_k_Py_UCS4[] = "Py_UCS4";
static const char __pyx_k_SetNode[] = "SetNode";
static const char __pyx_k_as_name[] = "as_name";
static const char __pyx_k_c_class[] = "c_class";
static const char __pyx_k_cascade[] = "cascade";
static const char __pyx_k_cimport[] = "cimport";
static const char __pyx_k_class_2[] = "class";
static const char __pyx_k_compile[] = "compile";
static const char __pyx_k_complex[] = "complex";
static const char __pyx_k_default[] = "default";
static const char __pyx_k_finally[] = "finally";
static const char __pyx_k_getchar[] = "getchar";
static const char __pyx_k_include[] = "include";
static const char __pyx_k_is_name[] = "is_name";
static const char __pyx_k_is_type[] = "is_type";
static const char __pyx_k_kw_only[] = "kw_only";
static const char __pyx_k_manager[] = "manager";
static const char __pyx_k_operand[] = "operand";
static const char __pyx_k_or_none[] = "or_none";
static const char __pyx_k_partial[] = "partial";
static const char __pyx_k_pattern[] = "pattern";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_private[] = "private";
static const char __pyx_k_replace[] = "replace";
static const char __pyx_k_ssize_t[] = "ssize_t";
static const char __pyx_k_stdcall[] = "__stdcall";
static const char __pyx_k_unicode[] = "_unicode";
static const char __pyx_k_warning[] = "warning";
static const char __pyx_k_BoolNode[] = "BoolNode";
static const char __pyx_k_CharNode[] = "CharNode";
static const char __pyx_k_DictNode[] = "DictNode";
static const char __pyx_k_Ellipsis[] = "Ellipsis";
static const char __pyx_k_ImagNode[] = "ImagNode";
static const char __pyx_k_KeyError[] = "KeyError";
static const char __pyx_k_ListNode[] = "ListNode";
static const char __pyx_k_NameNode[] = "NameNode";
static const char __pyx_k_NoneNode[] = "NoneNode";
static const char __pyx_k_NullNode[] = "NullNode";
static const char __pyx_k_Scanning[] = "Scanning";
static const char __pyx_k_StringIO[] = "StringIO";
static const char __pyx_k_continue[] = "continue";
static const char __pyx_k_cppclass[] = "cppclass";
static const char __pyx_k_ctypedef[] = "ctypedef";
static const char __pyx_k_division[] = "division";
static const char __pyx_k_encoding[] = "encoding";
static const char __pyx_k_exc_type[] = "exc_type";
static const char __pyx_k_fastcall[] = "__fastcall";
static const char __pyx_k_function[] = "function";
static const char __pyx_k_import_2[] = "__import__";
static const char __pyx_k_is_async[] = "is_async";
static const char __pyx_k_iterator[] = "iterator";
static const char __pyx_k_key_expr[] = "key_expr";
static const char __pyx_k_lhs_list[] = "lhs_list";
static const char __pyx_k_longness[] = "longness";
static const char __pyx_k_module_2[] = "__module__";
static const char __pyx_k_nonempty[] = "nonempty";
static const char __pyx_k_nonlocal[] = "nonlocal";
static const char __pyx_k_not_none[] = "not_none";
static const char __pyx_k_operand1[] = "operand1";
static const char __pyx_k_operand2[] = "operand2";
static const char __pyx_k_operator[] = "operator";
static const char __pyx_k_p_module[] = "p_module";
static const char __pyx_k_property[] = "property";
static const char __pyx_k_put_back[] = "put_back";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_readonly[] = "readonly";
static const char __pyx_k_sequence[] = "sequence";
static const char __pyx_k_set_type[] = "set_type";
static const char __pyx_k_star_arg[] = "star_arg";
static const char __pyx_k_template[] = "template";
static const char __pyx_k_true_val[] = "true_val";
static const char __pyx_k_unsigned[] = "unsigned";
static const char __pyx_k_with_gil[] = "with_gil";
static const char __pyx_k_BytesNode[] = "BytesNode";
static const char __pyx_k_ExprNodes[] = "ExprNodes";
static const char __pyx_k_FloatNode[] = "FloatNode";
static const char __pyx_k_IndexNode[] = "IndexNode";
static const char __pyx_k_Py_hash_t[] = "Py_hash_t";
static const char __pyx_k_SliceNode[] = "SliceNode";
static const char __pyx_k_TupleNode[] = "TupleNode";
static const char __pyx_k_annotated[] = "annotated";
static const char __pyx_k_arg_tuple[] = "arg_tuple";
static const char __pyx_k_attribute[] = "attribute";
static const char __pyx_k_base_type[] = "base_type";
static const char __pyx_k_cdef_flag[] = "cdef_flag";
static const char __pyx_k_condition[] = "condition";
static const char __pyx_k_cpp_class[] = "cpp_class";
static const char __pyx_k_decorator[] = "decorator";
static const char __pyx_k_dict_type[] = "dict_type";
static const char __pyx_k_dimension[] = "dimension";
static const char __pyx_k_exc_value[] = "exc_value";
static const char __pyx_k_false_val[] = "false_val";
static const char __pyx_k_functools[] = "functools";
static const char __pyx_k_in_pyfunc[] = "in_pyfunc";
static const char __pyx_k_list_type[] = "list_type";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_modifiers[] = "modifiers";
static const char __pyx_k_name_list[] = "name_list";
static const char __pyx_k_namespace[] = "namespace";
static const char __pyx_k_ptrdiff_t[] = "ptrdiff_t";
static const char __pyx_k_relation1[] = "relation1";
static const char __pyx_k_relation2[] = "relation2";
static const char __pyx_k_self_flag[] = "self_flag";
static const char __pyx_k_templates[] = "templates";
static const char __pyx_k_typecheck[] = "typecheck";
static const char __pyx_k_unop_node[] = "unop_node";
static const char __pyx_k_Ctx___call[] = "Ctx.__call__";
static const char __pyx_k_Ctx___init[] = "Ctx.__init__";
static const char __pyx_k_END_STRING[] = "END_STRING";
static const char __pyx_k_GlobalNode[] = "GlobalNode";
static const char __pyx_k_IfStatNode[] = "IfStatNode";
static const char __pyx_k_ImportNode[] = "ImportNode";
static const char __pyx_k_LambdaNode[] = "LambdaNode";
static const char __pyx_k_ModuleNode[] = "ModuleNode";
static const char __pyx_k_Py_UNICODE[] = "Py_UNICODE";
static const char __pyx_k_Py_ssize_t[] = "Py_ssize_t";
static const char __pyx_k_StringNode[] = "StringNode";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_annotation[] = "annotation";
static const char __pyx_k_assignable[] = "assignable";
static const char __pyx_k_attributes[] = "attributes";
static const char __pyx_k_binop_node[] = "binop_node";
static const char __pyx_k_class_name[] = "class_name";
static const char __pyx_k_components[] = "components";
static const char __pyx_k_declarator[] = "declarator";
static const char __pyx_k_decorators[] = "decorators";
static const char __pyx_k_getstrings[] = "getstrings";
static const char __pyx_k_if_clauses[] = "if_clauses";
static const char __pyx_k_is_starred[] = "is_starred";
static const char __pyx_k_join_bytes[] = "join_bytes";
static const char __pyx_k_module_pxd[] = "module_pxd";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_value_expr[] = "value_expr";
static const char __pyx_k_visibility[] = "visibility";
static const char __pyx_k_AsTupleNode[] = "AsTupleNode";
static const char __pyx_k_CVarDefNode[] = "CVarDefNode";
static const char __pyx_k_DelStatNode[] = "DelStatNode";
static const char __pyx_k_ForStatNode[] = "ForStatNode";
static const char __pyx_k_GILStatNode[] = "GILStatNode";
static const char __pyx_k_NewExprNode[] = "NewExprNode";
static const char __pyx_k_UnicodeNode[] = "UnicodeNode";
static const char __pyx_k_Unmatched_s[] = "Unmatched %s";
static const char __pyx_k_bytes_value[] = "bytes_value";
static const char __pyx_k_c_class_pxd[] = "c_class_pxd";
static const char __pyx_k_commentline[] = "commentline";
static const char __pyx_k_declarators[] = "declarators";
static const char __pyx_k_else_clause[] = "else_clause";
static const char __pyx_k_format_spec[] = "format_spec";
static const char __pyx_k_has_varargs[] = "has_varargs";
static const char __pyx_k_initial_pos[] = "initial_pos";
static const char __pyx_k_is_absolute[] = "is_absolute";
static const char __pyx_k_is_self_arg[] = "is_self_arg";
static const char __pyx_k_module_name[] = "module_name";
static const char __pyx_k_module_path[] = "module_path";
static const char __pyx_k_overridable[] = "overridable";
static const char __pyx_k_result_expr[] = "result_expr";
static const char __pyx_k_unicodedata[] = "unicodedata";
static const char __pyx_k_BEGIN_STRING[] = "BEGIN_STRING";
static const char __pyx_k_CArgDeclNode[] = "CArgDeclNode";
static const char __pyx_k_CEnumDefNode[] = "CEnumDefNode";
static const char __pyx_k_CFuncDefNode[] = "CFuncDefNode";
static const char __pyx_k_CTypeDefNode[] = "CTypeDefNode";
static const char __pyx_k_CondExprNode[] = "CondExprNode";
static const char __pyx_k_CppClassNode[] = "CppClassNode";
static const char __pyx_k_DictItemNode[] = "DictItemNode";
static const char __pyx_k_EllipsisNode[] = "EllipsisNode";
static const char __pyx_k_ExecStatNode[] = "ExecStatNode";
static const char __pyx_k_ExprStatNode[] = "ExprStatNode";
static const char __pyx_k_IfClauseNode[] = "IfClauseNode";
static const char __pyx_k_IteratorNode[] = "IteratorNode";
static const char __pyx_k_NonlocalNode[] = "NonlocalNode";
static const char __pyx_k_PassStatNode[] = "PassStatNode";
static const char __pyx_k_PropertyNode[] = "PropertyNode";
static const char __pyx_k_PyrexScanner[] = "PyrexScanner";
static const char __pyx_k_StatListNode[] = "StatListNode";
static const char __pyx_k_TypecastNode[] = "TypecastNode";
static const char __pyx_k_Unknown_type[] = "Unknown type";
static const char __pyx_k_WithStatNode[] = "WithStatNode";
static const char __pyx_k_base_classes[] = "base_classes";
static const char __pyx_k_cmethod_flag[] = "cmethod_flag";
static const char __pyx_k_include_file[] = "include_file";
static const char __pyx_k_is_async_def[] = "is_async_def";
static const char __pyx_k_is_c_literal[] = "is_c_literal";
static const char __pyx_k_is_except_as[] = "is_except_as";
static const char __pyx_k_keyword_args[] = "keyword_args";
static const char __pyx_k_not_a_chance[] = "not a chance";
static const char __pyx_k_p_c_arg_list[] = "p_c_arg_list";
static const char __pyx_k_starstar_arg[] = "starstar_arg";
static const char __pyx_k_truedivision[] = "truedivision";
static const char __pyx_k_typedef_flag[] = "typedef_flag";
static const char __pyx_k_typeobj_name[] = "typeobj_name";
static const char __pyx_k_version_info[] = "version_info";
static const char __pyx_k_AmpersandNode[] = "AmpersandNode";
static const char __pyx_k_AttributeNode[] = "AttributeNode";
static const char __pyx_k_AwaitExprNode[] = "AwaitExprNode";
static const char __pyx_k_BackquoteNode[] = "BackquoteNode";
static const char __pyx_k_BreakStatNode[] = "BreakStatNode";
static const char __pyx_k_CClassDefNode[] = "CClassDefNode";
static const char __pyx_k_DecoratorNode[] = "DecoratorNode";
static const char __pyx_k_EncodedString[] = "EncodedString";
static const char __pyx_k_Expected_None[] = "Expected 'None'";
static const char __pyx_k_FusedTypeNode[] = "FusedTypeNode";
static const char __pyx_k_JoinedStrNode[] = "JoinedStrNode";
static const char __pyx_k_PrintStatNode[] = "PrintStatNode";
static const char __pyx_k_PyArgDeclNode[] = "PyArgDeclNode";
static const char __pyx_k_RaiseStatNode[] = "RaiseStatNode";
static const char __pyx_k_SizeofVarNode[] = "SizeofVarNode";
static const char __pyx_k_WhileStatNode[] = "WhileStatNode";
static const char __pyx_k_YieldExprNode[] = "YieldExprNode";
static const char __pyx_k_bytes_literal[] = "bytes_literal";
static const char __pyx_k_p_c_base_type[] = "p_c_base_type";
static const char __pyx_k_unicode_value[] = "unicode_value";
static const char __pyx_k_AssertStatNode[] = "AssertStatNode";
static const char __pyx_k_AttributeError[] = "AttributeError";
static const char __pyx_k_CConstTypeNode[] = "CConstTypeNode";
static const char __pyx_k_CDefExternNode[] = "CDefExternNode";
static const char __pyx_k_MergedDictNode[] = "MergedDictNode";
static const char __pyx_k_PrimaryCmpNode[] = "PrimaryCmpNode";
static const char __pyx_k_PyClassDefNode[] = "PyClassDefNode";
static const char __pyx_k_ReturnStatNode[] = "ReturnStatNode";
static const char __pyx_k_SimpleCallNode[] = "SimpleCallNode";
static const char __pyx_k_SizeofTypeNode[] = "SizeofTypeNode";
static const char __pyx_k_SliceIndexNode[] = "SliceIndexNode";
static const char __pyx_k_StringEncoding[] = "StringEncoding";
static const char __pyx_k_append_charval[] = "append_charval";
static const char __pyx_k_append_newline[] = "append_newline";
static const char __pyx_k_append_uescape[] = "append_uescape";
static const char __pyx_k_base_type_node[] = "base_type_node";
static const char __pyx_k_create_wrapper[] = "create_wrapper";
static const char __pyx_k_except_clauses[] = "except_clauses";
static const char __pyx_k_finally_clause[] = "finally_clause";
static const char __pyx_k_ignore_unknown[] = "ignore_unknown";
static const char __pyx_k_imported_names[] = "imported_names";
static const char __pyx_k_intern_ustring[] = "intern_ustring";
static const char __pyx_k_invalid_syntax[] = "invalid syntax";
static const char __pyx_k_is_set_literal[] = "is_set_literal";
static const char __pyx_k_language_level[] = "language_level";
static const char __pyx_k_objstruct_name[] = "objstruct_name";
static const char __pyx_k_p_c_declarator[] = "p_c_declarator";
static const char __pyx_k_parent_scanner[] = "parent_scanner";
static const char __pyx_k_parse_comments[] = "parse_comments";
static const char __pyx_k_relative_level[] = "relative_level";
static const char __pyx_k_CImportStatNode[] = "CImportStatNode";
static const char __pyx_k_CascadedCmpNode[] = "CascadedCmpNode";
static const char __pyx_k_CythonArrayNode[] = "CythonArrayNode";
static const char __pyx_k_Expected_one_of[] = "Expected one of '<', '<=', '>' '>='";
static const char __pyx_k_GeneralCallNode[] = "GeneralCallNode";
static const char __pyx_k_ReraiseStatNode[] = "ReraiseStatNode";
static const char __pyx_k_absolute_import[] = "absolute_import";
static const char __pyx_k_base_class_name[] = "base_class_name";
static const char __pyx_k_constant_result[] = "constant_result";
static const char __pyx_k_conversion_char[] = "conversion_char";
static const char __pyx_k_exception_check[] = "exception_check";
static const char __pyx_k_exception_value[] = "exception_value";
static const char __pyx_k_has_local_scope[] = "has_local_scope";
static const char __pyx_k_is_basic_c_type[] = "is_basic_c_type";
static const char __pyx_k_is_const_method[] = "is_const_method";
static const char __pyx_k_is_dict_literal[] = "is_dict_literal";
static const char __pyx_k_key_value_pairs[] = "key_value_pairs";
static const char __pyx_k_make_slice_node[] = "make_slice_node";
static const char __pyx_k_positional_args[] = "positional_args";
static const char __pyx_k_source_encoding[] = "source_encoding";
static const char __pyx_k_CEnumDefItemNode[] = "CEnumDefItemNode";
static const char __pyx_k_ContinueStatNode[] = "ContinueStatNode";
static const char __pyx_k_Empty_declarator[] = "Empty declarator";
static const char __pyx_k_ExceptClauseNode[] = "ExceptClauseNode";
static const char __pyx_k_full_module_name[] = "full_module_name";
static const char __pyx_k_open_source_file[] = "open_source_file";
static const char __pyx_k_print_parse_tree[] = "print_parse_tree";
static const char __pyx_k_s_cython_s_s_w_s[] = "^#\\s*cython\\s*:\\s*((\\w|[.])+\\s*=.*)$";
static const char __pyx_k_unicode_literals[] = "unicode_literals";
static const char __pyx_k_AsyncIteratorNode[] = "AsyncIteratorNode";
static const char __pyx_k_ComprehensionNode[] = "ComprehensionNode";
static const char __pyx_k_StrLiteralBuilder[] = "StrLiteralBuilder";
static const char __pyx_k_TemplatedTypeNode[] = "TemplatedTypeNode";
static const char __pyx_k_TryExceptStatNode[] = "TryExceptStatNode";
static const char __pyx_k_YieldFromExprNode[] = "YieldFromExprNode";
static const char __pyx_k_base_class_module[] = "base_class_module";
static const char __pyx_k_find_include_file[] = "find_include_file";
static const char __pyx_k_future_directives[] = "future_directives";
static const char __pyx_k_is_string_literal[] = "is_string_literal";
static const char __pyx_k_reject_duplicates[] = "reject_duplicates";
static const char __pyx_k_CPtrDeclaratorNode[] = "CPtrDeclaratorNode";
static const char __pyx_k_CTupleBaseTypeNode[] = "CTupleBaseTypeNode";
static const char __pyx_k_Expected_a_newline[] = "Expected a newline";
static const char __pyx_k_FormattedValueNode[] = "FormattedValueNode";
static const char __pyx_k_FromImportStatNode[] = "FromImportStatNode";
static const char __pyx_k_MergedSequenceNode[] = "MergedSequenceNode";
static const char __pyx_k_TryFinallyStatNode[] = "TryFinallyStatNode";
static const char __pyx_k_calling_convention[] = "calling_convention";
static const char __pyx_k_compile_time_value[] = "compile_time_value";
static const char __pyx_k_directive_comments[] = "directive_comments";
static const char __pyx_k_set_language_level[] = "set_language_level";
static const char __pyx_k_BytesLiteralBuilder[] = "BytesLiteralBuilder";
static const char __pyx_k_CFuncDeclaratorNode[] = "CFuncDeclaratorNode";
static const char __pyx_k_CNameDeclaratorNode[] = "CNameDeclaratorNode";
static const char __pyx_k_CNestedBaseTypeNode[] = "CNestedBaseTypeNode";
static const char __pyx_k_CSimpleBaseTypeNode[] = "CSimpleBaseTypeNode";
static const char __pyx_k_FromCImportStatNode[] = "FromCImportStatNode";
static const char __pyx_k_force_py3_semantics[] = "force_py3_semantics";
static const char __pyx_k_CArrayDeclaratorNode[] = "CArrayDeclaratorNode";
static const char __pyx_k_CComplexBaseTypeNode[] = "CComplexBaseTypeNode";
static const char __pyx_k_CConstDeclaratorNode[] = "CConstDeclaratorNode";
static const char __pyx_k_FileSourceDescriptor[] = "FileSourceDescriptor";
static const char __pyx_k_IdentifierStringNode[] = "IdentifierStringNode";
static const char __pyx_k_Invalid_hex_escape_s[] = "Invalid hex escape '%s'";
static const char __pyx_k_SingleAssignmentNode[] = "SingleAssignmentNode";
static const char __pyx_k_StarredUnpackingNode[] = "StarredUnpackingNode";
static const char __pyx_k_find_conversion_func[] = "find_conversion_func";
static const char __pyx_k_nonempty_declarators[] = "nonempty_declarators";
static const char __pyx_k_parse_directive_list[] = "parse_directive_list";
static const char __pyx_k_CStructOrUnionDefNode[] = "CStructOrUnionDefNode";
static const char __pyx_k_InPlaceAssignmentNode[] = "InPlaceAssignmentNode";
static const char __pyx_k_UnicodeLiteralBuilder[] = "UnicodeLiteralBuilder";
static const char __pyx_k_invalid_string_kind_s[] = "invalid string kind '%s'";
static const char __pyx_k_CascadedAssignmentNode[] = "CascadedAssignmentNode";
static const char __pyx_k_Expected_an_identifier[] = "Expected an identifier";
static const char __pyx_k_Need_at_least_one_type[] = "Need at least one type";
static const char __pyx_k_StringSourceDescriptor[] = "StringSourceDescriptor";
static const char __pyx_k_Syntax_error_in_string[] = "Syntax error in string";
static const char __pyx_k_return_type_annotation[] = "return_type_annotation";
static const char __pyx_k_ComprehensionAppendNode[] = "ComprehensionAppendNode";
static const char __pyx_k_Cython_Compiler_Parsing[] = "Cython.Compiler.Parsing";
static const char __pyx_k_Expected_object_or_type[] = "Expected 'object' or 'type'";
static const char __pyx_k_GeneratorExpressionNode[] = "GeneratorExpressionNode";
static const char __pyx_k_MemoryViewSliceTypeNode[] = "MemoryViewSliceTypeNode";
static const char __pyx_k_Unclosed_string_literal[] = "Unclosed string literal";
static const char __pyx_k_CReferenceDeclaratorNode[] = "CReferenceDeclaratorNode";
static const char __pyx_k_Invalid_unicode_escape_s[] = "Invalid unicode escape '%s'";
static const char __pyx_k_Cannot_combine_api_with_s[] = "Cannot combine 'api' with '%s'";
static const char __pyx_k_char_from_escape_sequence[] = "char_from_escape_sequence";
static const char __pyx_k_expected_expression_found[] = "expected expression, found '*'";
static const char __pyx_k_f_string_not_allowed_here[] = "f-string not allowed here";
static const char __pyx_k_Declarator_should_be_empty[] = "Declarator should be empty";
static const char __pyx_k_Expected_except_or_finally[] = "Expected 'except' or 'finally'";
static const char __pyx_k_Expected_import_or_cimport[] = "Expected 'import' or 'cimport'";
static const char __pyx_k_Invalid_class_visibility_s[] = "Invalid class visibility '%s'";
static const char __pyx_k_Syntax_error_in_doc_string[] = "Syntax error in doc string";
static const char __pyx_k_calling_convention_allowed[] = "calling_convention_allowed";
static const char __pyx_k_decorator_not_allowed_here[] = "decorator not allowed here";
static const char __pyx_k_DictComprehensionAppendNode[] = "DictComprehensionAppendNode";
static const char __pyx_k_allow_struct_enum_decorator[] = "allow_struct_enum_decorator";
static const char __pyx_k_invalid_character_literal_r[] = "invalid character literal: %r";
static const char __pyx_k_missing_in_format_specifier[] = "missing '}' in format specifier";
static const char __pyx_k_Syntax_error_in_declarations[] = "Syntax error in declarations";
static const char __pyx_k_format_string_cannot_include[] = "format string cannot include #";
static const char __pyx_k_Expected_an_identifier_before[] = "Expected an identifier before '='";
static const char __pyx_k_Syntax_error_in_statement_s_s[] = "Syntax error in statement [%s,%s]";
static const char __pyx_k_Expected_an_identifier_found_s[] = "Expected an identifier, found '%s'";
static const char __pyx_k_Syntax_error_in_enum_item_list[] = "Syntax error in enum item list";
static const char __pyx_k_def_statement_not_allowed_here[] = "def statement not allowed here";
static const char __pyx_k_invalid_conversion_character_s[] = "invalid conversion character '%s'";
static const char __pyx_k_with_gil_nogil_cannot_be_async[] = "with gil/nogil cannot be async";
static const char __pyx_k_Cannot_concatenate_char_literal[] = "Cannot concatenate char literal with another string or char literal";
static const char __pyx_k_Decorators_can_only_be_followed[] = "Decorators can only be followed by functions or classes";
static const char __pyx_k_Module_name_required_for_extern[] = "Module name required for 'extern' C class";
static const char __pyx_k_Python_3_requires_docstrings_to[] = "Python 3 requires docstrings to be unicode strings";
static const char __pyx_k_Relation_directions_in_for_from[] = "Relation directions in for-from do not match";
static const char __pyx_k_Syntax_error_in_Python_function[] = "Syntax error in Python function argument list";
static const char __pyx_k_Syntax_error_in_struct_or_union[] = "Syntax error in struct or union definition";
static const char __pyx_k_Variable_name_in_for_from_range[] = "Variable name in for-from range does not match target";
static const char __pyx_k_api_not_allowed_with_this_state[] = "'api' not allowed with this statement";
static const char __pyx_k_cdef_statement_not_allowed_here[] = "cdef statement not allowed here";
static const char __pyx_k_empty_expression_not_allowed_in[] = "empty expression not allowed in f-string";
static const char __pyx_k_expected_tuple_of_length_2_or_3[] = "expected tuple of length 2 or 3, got length %d";
static const char __pyx_k_future_feature_s_is_not_defined[] = "future feature %s is not defined";
static const char __pyx_k_s_None_only_allowed_in_Python_f[] = "'%s None' only allowed in Python functions";
static const char __pyx_k_s_on_something_that_is_not_a_fu[] = "%s on something that is not a function";
static const char __pyx_k_tmp_pip_install_9i_72p5f_cython[] = "/tmp/pip-install-9i_72p5f/cython_58c0ae716fd246eb8843b3dfd03bc38a/Cython/Compiler/Parsing.py";
static const char __pyx_k_yield_from_requires_a_source_ar[] = "'yield from' requires a source argument";
static const char __pyx_k_An_axis_specification_in_memoryv[] = "An axis specification in memoryview declaration does not have a ':'.";
static const char __pyx_k_Argument_expansion_not_allowed_h[] = "Argument expansion not allowed here.";
static const char __pyx_k_C_class_may_only_have_one_base_c[] = "C class may only have one base class";
static const char __pyx_k_C_function_definition_not_allowe[] = "C function definition not allowed here";
static const char __pyx_k_C_struct_union_cannot_be_declare[] = "C struct/union cannot be declared cpdef";
static const char __pyx_k_C_struct_union_enum_definition_n[] = "C struct/union/enum definition not allowed here";
static const char __pyx_k_Cannot_mix_string_literals_of_di[] = "Cannot mix string literals of different types, expected %s'', got %s''";
static const char __pyx_k_Conflicting_visibility_options_s[] = "Conflicting visibility options '%s' and '%s'";
static const char __pyx_k_Duplicate_string_prefix_characte[] = "Duplicate string prefix character";
static const char __pyx_k_Executable_statement_not_allowed[] = "Executable statement not allowed here";
static const char __pyx_k_Expected_a_newline_after_decorat[] = "Expected a newline after decorator";
static const char __pyx_k_Expected_an_identifier_or_litera[] = "Expected an identifier or literal";
static const char __pyx_k_Extension_type_definition_not_al[] = "Extension type definition not allowed here";
static const char __pyx_k_Extension_types_cannot_be_declar[] = "Extension types cannot be declared cpdef";
static const char __pyx_k_Fused_type_definition_not_allowe[] = "Fused type definition not allowed here";
static const char __pyx_k_Illegal_operand_for_inplace_oper[] = "Illegal operand for inplace operation.";
static const char __pyx_k_Invalid_string_prefix_for_charac[] = "Invalid string prefix for character literal";
static const char __pyx_k_Invalid_type_for_compile_time_co[] = "Invalid type for compile-time constant: %r (type %s)";
static const char __pyx_k_Name_options_not_allowed_for_C_c[] = "Name options not allowed for C++ class";
static const char __pyx_k_Name_options_only_allowed_for_pu[] = "Name options only allowed for 'public', 'api', or 'extern' C class";
static const char __pyx_k_Non_keyword_arg_following_keywor[] = "Non-keyword arg following keyword arg";
static const char __pyx_k_Object_struct_name_specification[] = "Object struct name specification required for 'public' C class";
static const char __pyx_k_Overloading_operator_s_not_yet_s[] = "Overloading operator '%s' not yet supported.";
static const char __pyx_k_Python_function_cannot_be_declar[] = "Python function cannot be declared nogil";
static const char __pyx_k_Qualified_class_name_not_allowed[] = "Qualified class name not allowed C++ class";
static const char __pyx_k_Qualified_class_name_only_allowe[] = "Qualified class name only allowed for 'extern' C class";
static const char __pyx_k_String_prefixes_b_and_f_cannot_b[] = "String prefixes b and f cannot be combined";
static const char __pyx_k_String_prefixes_b_and_u_cannot_b[] = "String prefixes b and u cannot be combined";
static const char __pyx_k_String_prefixes_u_and_f_cannot_b[] = "String prefixes u and f cannot be combined";
static const char __pyx_k_Syntax_error_in_C_class_definiti[] = "Syntax error in C class definition";
static const char __pyx_k_Syntax_error_in_C_variable_decla[] = "Syntax error in C variable declaration";
static const char __pyx_k_Syntax_error_in_ctypedef_stateme[] = "Syntax error in ctypedef statement";
static const char __pyx_k_Syntax_error_in_include_statemen[] = "Syntax error in include statement";
static const char __pyx_k_Syntax_error_in_simple_statement[] = "Syntax error in simple statement list";
static const char __pyx_k_Syntax_error_in_template_functio[] = "Syntax error in template function declaration";
static const char __pyx_k_Target_of_for_from_statement_mus[] = "Target of for-from statement must be a variable name";
static const char __pyx_k_Type_object_name_specification_n[] = "Type object name specification not allowed for 'extern' C class";
static const char __pyx_k_Type_object_name_specification_r[] = "Type object name specification required for 'public' C class";
static const char __pyx_k_Unexpected_token_r_r_in_string_l[] = "Unexpected token %r:%r in string literal";
static const char __pyx_k_Unknown_Unicode_character_name_s[] = "Unknown Unicode character name %s";
static const char __pyx_k_a_starred_assignment_target_must[] = "a starred assignment target must be in a list or tuple - maybe you meant to use an index assignment: var[0] = ...";
static const char __pyx_k_bytes_can_only_contain_ASCII_lit[] = "bytes can only contain ASCII literal characters.";
static const char __pyx_k_cdef_blocks_cannot_be_declared_c[] = "cdef blocks cannot be declared cpdef";
static const char __pyx_k_cdef_extern_blocks_cannot_be_dec[] = "cdef extern blocks cannot be declared cpdef";
static const char __pyx_k_class_definition_not_allowed_her[] = "class definition not allowed here";
static const char __pyx_k_ctypedef_statement_not_allowed_h[] = "ctypedef statement not allowed here";
static const char __pyx_k_default_values_cannot_be_specifi[] = "default values cannot be specified in pxd files, use ? or *";
static const char __pyx_k_expected_one_of_def_for_with_aft[] = "expected one of 'def', 'for', 'with' after 'async'";
static const char __pyx_k_from___future___imports_must_occ[] = "from __future__ imports must occur at the beginning of the file";
static const char __pyx_k_illegal_integer_literal_syntax_i[] = "illegal integer literal syntax in Python source file";
static const char __pyx_k_include_statement_not_allowed_he[] = "include statement not allowed here";
static const char __pyx_k_internal_parser_configuration_er[] = "internal parser configuration error";
static const char __pyx_k_invalid_conversion_char_at_end_o[] = "invalid conversion char at end of string";
static const char __pyx_k_iterable_unpacking_cannot_be_use[] = "iterable unpacking cannot be used in comprehension";
static const char __pyx_k_missing_in_format_string_express[] = "missing '}' in format string expression";
static const char __pyx_k_single_encountered_in_format_str[] = "single '}' encountered in format string";
static const char __pyx_k_tuple_variant_of_exec_does_not_s[] = "tuple variant of exec does not support additional 'in' arguments";
static const char __pyx_k_unexpected_sitem_found_in_s_lite[] = "unexpected %sitem found in %s literal";
static const char __pyx_k_Object_struct_name_specification_2[] = "Object struct name specification required for 'api' C class";
static const char __pyx_k_Syntax_error_in_C_class_definiti_2[] = "Syntax error in C++ class definition";
static const char __pyx_k_Type_object_name_specification_r_2[] = "Type object name specification required for 'api' C class";
static const char __pyx_k_missing_in_format_string_express_2[] = "missing '}' in format string expression', found '%s'";
static PyObject *__pyx_kp_u_;
static PyObject *__pyx_n_s_AmpersandNode;
static PyObject *__pyx_kp_u_An_axis_specification_in_memoryv;
static PyObject *__pyx_kp_u_Argument_expansion_not_allowed_h;
static PyObject *__pyx_n_s_AsTupleNode;
static PyObject *__pyx_n_s_AssertStatNode;
static PyObject *__pyx_n_s_AsyncIteratorNode;
static PyObject *__pyx_n_s_AttributeError;
static PyObject *__pyx_n_s_AttributeNode;
static PyObject *__pyx_n_s_AwaitExprNode;
static PyObject *__pyx_n_u_BEGIN_STRING;
static PyObject *__pyx_n_s_BackquoteNode;
static PyObject *__pyx_n_s_BoolNode;
static PyObject *__pyx_n_s_BreakStatNode;
static PyObject *__pyx_n_s_Builtin;
static PyObject *__pyx_n_s_BytesLiteralBuilder;
static PyObject *__pyx_n_s_BytesNode;
static PyObject *__pyx_n_s_CArgDeclNode;
static PyObject *__pyx_n_s_CArrayDeclaratorNode;
static PyObject *__pyx_n_s_CClassDefNode;
static PyObject *__pyx_n_s_CComplexBaseTypeNode;
static PyObject *__pyx_n_s_CConstDeclaratorNode;
static PyObject *__pyx_n_s_CConstTypeNode;
static PyObject *__pyx_n_s_CDefExternNode;
static PyObject *__pyx_n_s_CEnumDefItemNode;
static PyObject *__pyx_n_s_CEnumDefNode;
static PyObject *__pyx_n_s_CFuncDeclaratorNode;
static PyObject *__pyx_n_s_CFuncDefNode;
static PyObject *__pyx_n_u_CHARS;
static PyObject *__pyx_n_s_CImportStatNode;
static PyObject *__pyx_n_s_CNameDeclaratorNode;
static PyObject *__pyx_n_s_CNestedBaseTypeNode;
static PyObject *__pyx_n_s_CPtrDeclaratorNode;
static PyObject *__pyx_n_s_CReferenceDeclaratorNode;
static PyObject *__pyx_n_s_CSimpleBaseTypeNode;
static PyObject *__pyx_n_s_CStructOrUnionDefNode;
static PyObject *__pyx_n_s_CTupleBaseTypeNode;
static PyObject *__pyx_n_s_CTypeDefNode;
static PyObject *__pyx_n_s_CVarDefNode;
static PyObject *__pyx_kp_u_C_class_may_only_have_one_base_c;
static PyObject *__pyx_kp_u_C_function_definition_not_allowe;
static PyObject *__pyx_kp_u_C_struct_union_cannot_be_declare;
static PyObject *__pyx_kp_u_C_struct_union_enum_definition_n;
static PyObject *__pyx_kp_u_Cannot_combine_api_with_s;
static PyObject *__pyx_kp_u_Cannot_concatenate_char_literal;
static PyObject *__pyx_kp_u_Cannot_mix_string_literals_of_di;
static PyObject *__pyx_n_s_CascadedAssignmentNode;
static PyObject *__pyx_n_s_CascadedCmpNode;
static PyObject *__pyx_n_s_CharNode;
static PyObject *__pyx_n_s_ComprehensionAppendNode;
static PyObject *__pyx_n_s_ComprehensionNode;
static PyObject *__pyx_n_s_CondExprNode;
static PyObject *__pyx_kp_u_Conflicting_visibility_options_s;
static PyObject *__pyx_n_s_ContinueStatNode;
static PyObject *__pyx_n_s_CppClassNode;
static PyObject *__pyx_n_s_Ctx;
static PyObject *__pyx_n_s_Ctx___call;
static PyObject *__pyx_n_s_Ctx___init;
static PyObject *__pyx_n_s_CythonArrayNode;
static PyObject *__pyx_n_s_Cython_Compiler_Parsing;
static PyObject *__pyx_n_u_DEDENT;
static PyObject *__pyx_n_u_DEF;
static PyObject *__pyx_kp_u_Declarator_should_be_empty;
static PyObject *__pyx_n_s_DecoratorNode;
static PyObject *__pyx_kp_u_Decorators_can_only_be_followed;
static PyObject *__pyx_n_s_DefNode;
static PyObject *__pyx_n_s_DelStatNode;
static PyObject *__pyx_n_s_DictComprehensionAppendNode;
static PyObject *__pyx_n_s_DictItemNode;
static PyObject *__pyx_n_s_DictNode;
static PyObject *__pyx_kp_u_Duplicate_string_prefix_characte;
static PyObject *__pyx_n_u_ELIF;
static PyObject *__pyx_n_u_ELSE;
static PyObject *__pyx_n_u_END_STRING;
static PyObject *__pyx_n_u_EOF;
static PyObject *__pyx_n_u_ESCAPE;
static PyObject *__pyx_n_s_Ellipsis;
static PyObject *__pyx_n_s_EllipsisNode;
static PyObject *__pyx_kp_u_Empty_declarator;
static PyObject *__pyx_n_s_EncodedString;
static PyObject *__pyx_n_s_Errors;
static PyObject *__pyx_n_s_ExceptClauseNode;
static PyObject *__pyx_n_s_ExecStatNode;
static PyObject *__pyx_kp_u_Executable_statement_not_allowed;
static PyObject *__pyx_kp_u_Expected_None;
static PyObject *__pyx_kp_u_Expected_a_newline;
static PyObject *__pyx_kp_u_Expected_a_newline_after_decorat;
static PyObject *__pyx_kp_u_Expected_an_identifier;
static PyObject *__pyx_kp_u_Expected_an_identifier_before;
static PyObject *__pyx_kp_u_Expected_an_identifier_found_s;
static PyObject *__pyx_kp_u_Expected_an_identifier_or_litera;
static PyObject *__pyx_kp_u_Expected_except_or_finally;
static PyObject *__pyx_kp_u_Expected_import_or_cimport;
static PyObject *__pyx_kp_u_Expected_object_or_type;
static PyObject *__pyx_kp_u_Expected_one_of;
static PyObject *__pyx_n_s_ExprNodes;
static PyObject *__pyx_n_s_ExprStatNode;
static PyObject *__pyx_kp_u_Extension_type_definition_not_al;
static PyObject *__pyx_kp_u_Extension_types_cannot_be_declar;
static PyObject *__pyx_n_u_FLOAT;
static PyObject *__pyx_n_u_False;
static PyObject *__pyx_n_s_FileSourceDescriptor;
static PyObject *__pyx_n_s_FloatNode;
static PyObject *__pyx_n_s_ForStatNode;
static PyObject *__pyx_n_s_FormattedValueNode;
static PyObject *__pyx_n_s_FromCImportStatNode;
static PyObject *__pyx_n_s_FromImportStatNode;
static PyObject *__pyx_n_s_FusedTypeNode;
static PyObject *__pyx_kp_u_Fused_type_definition_not_allowe;
static PyObject *__pyx_n_s_Future;
static PyObject *__pyx_n_s_GILStatNode;
static PyObject *__pyx_n_s_GeneralCallNode;
static PyObject *__pyx_n_s_GeneratorExpressionNode;
static PyObject *__pyx_n_s_GlobalNode;
static PyObject *__pyx_n_u_IDENT;
static PyObject *__pyx_n_u_IF;
static PyObject *__pyx_n_u_IMAG;
static PyObject *__pyx_n_u_INT;
static PyObject *__pyx_n_s_IdentifierStringNode;
static PyObject *__pyx_n_s_IfClauseNode;
static PyObject *__pyx_n_s_IfStatNode;
static PyObject *__pyx_kp_u_Illegal_operand_for_inplace_oper;
static PyObject *__pyx_n_s_ImagNode;
static PyObject *__pyx_n_s_ImportNode;
static PyObject *__pyx_n_s_InPlaceAssignmentNode;
static PyObject *__pyx_n_s_IndexNode;
static PyObject *__pyx_n_s_IntNode;
static PyObject *__pyx_kp_u_Invalid_class_visibility_s;
static PyObject *__pyx_kp_u_Invalid_hex_escape_s;
static PyObject *__pyx_kp_u_Invalid_string_prefix_for_charac;
static PyObject *__pyx_kp_u_Invalid_type_for_compile_time_co;
static PyObject *__pyx_kp_u_Invalid_unicode_escape_s;
static PyObject *__pyx_n_s_IteratorNode;
static PyObject *__pyx_n_s_JoinedStrNode;
static PyObject *__pyx_n_s_KeyError;
static PyObject *__pyx_n_u_L;
static PyObject *__pyx_n_u_LL;
static PyObject *__pyx_n_s_LambdaNode;
static PyObject *__pyx_n_s_ListNode;
static PyObject *__pyx_n_s_MemoryViewSliceTypeNode;
static PyObject *__pyx_n_s_MergedDictNode;
static PyObject *__pyx_n_s_MergedSequenceNode;
static PyObject *__pyx_n_s_ModuleNode;
static PyObject *__pyx_kp_u_Module_name_required_for_extern;
static PyObject *__pyx_n_u_NEWLINE;
static PyObject *__pyx_n_u_NULL;
static PyObject *__pyx_n_s_NameNode;
static PyObject *__pyx_kp_u_Name_options_not_allowed_for_C_c;
static PyObject *__pyx_kp_u_Name_options_only_allowed_for_pu;
static PyObject *__pyx_kp_u_Need_at_least_one_type;
static PyObject *__pyx_n_s_NewExprNode;
static PyObject *__pyx_n_s_Node;
static PyObject *__pyx_n_s_Nodes;
static PyObject *__pyx_kp_u_Non_keyword_arg_following_keywor;
static PyObject *__pyx_n_u_None;
static PyObject *__pyx_n_s_NoneNode;
static PyObject *__pyx_n_s_NonlocalNode;
static PyObject *__pyx_n_s_NotNode;
static PyObject *__pyx_n_s_NullNode;
static PyObject *__pyx_kp_u_Object_struct_name_specification;
static PyObject *__pyx_kp_u_Object_struct_name_specification_2;
static PyObject *__pyx_n_s_Options;
static PyObject *__pyx_kp_u_Overloading_operator_s_not_yet_s;
static PyObject *__pyx_n_s_PassStatNode;
static PyObject *__pyx_n_s_PrimaryCmpNode;
static PyObject *__pyx_n_s_PrintStatNode;
static PyObject *__pyx_n_s_PropertyNode;
static PyObject *__pyx_n_s_PyArgDeclNode;
static PyObject *__pyx_n_s_PyClassDefNode;
static PyObject *__pyx_n_u_Py_UCS4;
static PyObject *__pyx_n_u_Py_UNICODE;
static PyObject *__pyx_n_u_Py_hash_t;
static PyObject *__pyx_n_u_Py_ssize_t;
static PyObject *__pyx_n_s_PyrexScanner;
static PyObject *__pyx_kp_u_Python_3_requires_docstrings_to;
static PyObject *__pyx_kp_u_Python_function_cannot_be_declar;
static PyObject *__pyx_kp_u_Qualified_class_name_not_allowed;
static PyObject *__pyx_kp_u_Qualified_class_name_only_allowe;
static PyObject *__pyx_n_s_RaiseStatNode;
static PyObject *__pyx_kp_u_Relation_directions_in_for_from;
static PyObject *__pyx_n_s_ReraiseStatNode;
static PyObject *__pyx_n_s_ReturnStatNode;
static PyObject *__pyx_n_s_Scanning;
static PyObject *__pyx_n_s_SetNode;
static PyObject *__pyx_n_s_SimpleCallNode;
static PyObject *__pyx_n_s_SingleAssignmentNode;
static PyObject *__pyx_n_s_SizeofTypeNode;
static PyObject *__pyx_n_s_SizeofVarNode;
static PyObject *__pyx_n_s_SliceIndexNode;
static PyObject *__pyx_n_s_SliceNode;
static PyObject *__pyx_n_s_StarredUnpackingNode;
static PyObject *__pyx_n_s_StatListNode;
static PyObject *__pyx_n_s_StrLiteralBuilder;
static PyObject *__pyx_n_s_StringEncoding;
static PyObject *__pyx_n_s_StringIO;
static PyObject *__pyx_n_s_StringNode;
static PyObject *__pyx_n_s_StringSourceDescriptor;
static PyObject *__pyx_kp_u_String_prefixes_b_and_f_cannot_b;
static PyObject *__pyx_kp_u_String_prefixes_b_and_u_cannot_b;
static PyObject *__pyx_kp_u_String_prefixes_u_and_f_cannot_b;
static PyObject *__pyx_kp_u_Syntax_error_in_C_class_definiti;
static PyObject *__pyx_kp_u_Syntax_error_in_C_class_definiti_2;
static PyObject *__pyx_kp_u_Syntax_error_in_C_variable_decla;
static PyObject *__pyx_kp_u_Syntax_error_in_Python_function;
static PyObject *__pyx_kp_u_Syntax_error_in_ctypedef_stateme;
static PyObject *__pyx_kp_u_Syntax_error_in_declarations;
static PyObject *__pyx_kp_u_Syntax_error_in_doc_string;
static PyObject *__pyx_kp_u_Syntax_error_in_enum_item_list;
static PyObject *__pyx_kp_u_Syntax_error_in_include_statemen;
static PyObject *__pyx_kp_u_Syntax_error_in_simple_statement;
static PyObject *__pyx_kp_u_Syntax_error_in_statement_s_s;
static PyObject *__pyx_kp_u_Syntax_error_in_string;
static PyObject *__pyx_kp_u_Syntax_error_in_struct_or_union;
static PyObject *__pyx_kp_u_Syntax_error_in_template_functio;
static PyObject *__pyx_kp_u_Target_of_for_from_statement_mus;
static PyObject *__pyx_n_s_TemplatedTypeNode;
static PyObject *__pyx_n_u_True;
static PyObject *__pyx_n_s_TryExceptStatNode;
static PyObject *__pyx_n_s_TryFinallyStatNode;
static PyObject *__pyx_n_s_TupleNode;
static PyObject *__pyx_kp_u_Type_object_name_specification_n;
static PyObject *__pyx_kp_u_Type_object_name_specification_r;
static PyObject *__pyx_kp_u_Type_object_name_specification_r_2;
static PyObject *__pyx_n_s_TypecastNode;
static PyObject *__pyx_n_u_U;
static PyObject *__pyx_kp_u_Unclosed_string_literal;
static PyObject *__pyx_kp_u_Unexpected_token_r_r_in_string_l;
static PyObject *__pyx_n_s_UnicodeLiteralBuilder;
static PyObject *__pyx_n_s_UnicodeNode;
static PyObject *__pyx_kp_u_Unknown_Unicode_character_name_s;
static PyObject *__pyx_kp_u_Unknown_type;
static PyObject *__pyx_kp_u_Unmatched_s;
static PyObject *__pyx_n_s_Utils;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_kp_u_Variable_name_in_for_from_range;
static PyObject *__pyx_n_s_WhileStatNode;
static PyObject *__pyx_n_s_WithStatNode;
static PyObject *__pyx_n_s_YieldExprNode;
static PyObject *__pyx_n_s_YieldFromExprNode;
static PyObject *__pyx_kp_u__11;
static PyObject *__pyx_kp_u__120;
static PyObject *__pyx_kp_u__121;
static PyObject *__pyx_kp_u__122;
static PyObject *__pyx_kp_u__123;
static PyObject *__pyx_kp_u__124;
static PyObject *__pyx_kp_u__13;
static PyObject *__pyx_kp_u__131;
static PyObject *__pyx_kp_u__138;
static PyObject *__pyx_kp_u__139;
static PyObject *__pyx_kp_u__145;
static PyObject *__pyx_kp_u__146;
static PyObject *__pyx_kp_u__147;
static PyObject *__pyx_kp_u__15;
static PyObject *__pyx_kp_u__16;
static PyObject *__pyx_kp_u__161;
static PyObject *__pyx_kp_u__162;
static PyObject *__pyx_kp_u__18;
static PyObject *__pyx_kp_u__19;
static PyObject *__pyx_kp_u__2;
static PyObject *__pyx_kp_u__21;
static PyObject *__pyx_kp_u__22;
static PyObject *__pyx_kp_u__23;
static PyObject *__pyx_kp_u__25;
static PyObject *__pyx_kp_u__26;
static PyObject *__pyx_kp_u__28;
static PyObject *__pyx_kp_u__29;
static PyObject *__pyx_kp_u__3;
static PyObject *__pyx_kp_u__30;
static PyObject *__pyx_kp_u__31;
static PyObject *__pyx_kp_u__36;
static PyObject *__pyx_kp_u__37;
static PyObject *__pyx_kp_u__38;
static PyObject *__pyx_kp_u__40;
static PyObject *__pyx_kp_u__43;
static PyObject *__pyx_kp_u__47;
static PyObject *__pyx_kp_u__48;
static PyObject *__pyx_n_s__50;
static PyObject *__pyx_kp_u__50;
static PyObject *__pyx_kp_u__54;
static PyObject *__pyx_kp_u__6;
static PyObject *__pyx_kp_u__62;
static PyObject *__pyx_kp_u__63;
static PyObject *__pyx_kp_u__66;
static PyObject *__pyx_kp_u__67;
static PyObject *__pyx_kp_u__7;
static PyObject *__pyx_kp_u__71;
static PyObject *__pyx_kp_u__73;
static PyObject *__pyx_kp_u__76;
static PyObject *__pyx_kp_u__8;
static PyObject *__pyx_kp_u__83;
static PyObject *__pyx_kp_u__9;
static PyObject *__pyx_kp_u__96;
static PyObject *__pyx_kp_u_a_starred_assignment_target_must;
static PyObject *__pyx_n_s_absolute_import;
static PyObject *__pyx_n_s_add;
static PyObject *__pyx_n_s_allow_struct_enum_decorator;
static PyObject *__pyx_n_u_and;
static PyObject *__pyx_n_s_annotated;
static PyObject *__pyx_n_s_annotation;
static PyObject *__pyx_n_s_api;
static PyObject *__pyx_n_u_api;
static PyObject *__pyx_kp_u_api_not_allowed_with_this_state;
static PyObject *__pyx_n_s_append;
static PyObject *__pyx_n_s_append_charval;
static PyObject *__pyx_n_s_append_newline;
static PyObject *__pyx_n_s_append_uescape;
static PyObject *__pyx_n_s_arg;
static PyObject *__pyx_n_s_arg_tuple;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_n_u_as;
static PyObject *__pyx_n_s_as_name;
static PyObject *__pyx_n_u_ascii;
static PyObject *__pyx_n_u_assert;
static PyObject *__pyx_n_s_assignable;
static PyObject *__pyx_n_u_async;
static PyObject *__pyx_n_s_attribute;
static PyObject *__pyx_n_s_attributes;
static PyObject *__pyx_n_u_await;
static PyObject *__pyx_n_s_axes;
static PyObject *__pyx_n_u_b;
static PyObject *__pyx_n_s_base;
static PyObject *__pyx_n_s_base_class_module;
static PyObject *__pyx_n_s_base_class_name;
static PyObject *__pyx_n_s_base_classes;
static PyObject *__pyx_n_s_base_type;
static PyObject *__pyx_n_s_base_type_node;
static PyObject *__pyx_n_s_bases;
static PyObject *__pyx_n_s_binop_node;
static PyObject *__pyx_n_u_bint;
static PyObject *__pyx_n_s_body;
static PyObject *__pyx_n_u_bool;
static PyObject *__pyx_n_s_bound1;
static PyObject *__pyx_n_s_bound2;
static PyObject *__pyx_n_u_braces;
static PyObject *__pyx_n_u_break;
static PyObject *__pyx_n_u_by;
static PyObject *__pyx_n_s_bytes;
static PyObject *__pyx_kp_u_bytes_can_only_contain_ASCII_lit;
static PyObject *__pyx_n_s_bytes_literal;
static PyObject *__pyx_n_s_bytes_value;
static PyObject *__pyx_n_u_c;
static PyObject *__pyx_n_u_c_class;
static PyObject *__pyx_n_u_c_class_pxd;
static PyObject *__pyx_n_s_call;
static PyObject *__pyx_n_s_calling_convention;
static PyObject *__pyx_n_s_calling_convention_allowed;
static PyObject *__pyx_n_s_cascade;
static PyObject *__pyx_n_s_cause;
static PyObject *__pyx_n_u_cdecl;
static PyObject *__pyx_n_u_cdef;
static PyObject *__pyx_kp_u_cdef_blocks_cannot_be_declared_c;
static PyObject *__pyx_kp_u_cdef_extern_blocks_cannot_be_dec;
static PyObject *__pyx_n_s_cdef_flag;
static PyObject *__pyx_kp_u_cdef_statement_not_allowed_here;
static PyObject *__pyx_n_u_char;
static PyObject *__pyx_n_s_char_from_escape_sequence;
static PyObject *__pyx_n_u_cimport;
static PyObject *__pyx_n_s_class;
static PyObject *__pyx_n_u_class_2;
static PyObject *__pyx_kp_u_class_definition_not_allowed_her;
static PyObject *__pyx_n_s_class_name;
static PyObject *__pyx_n_s_cmethod_flag;
static PyObject *__pyx_n_s_cname;
static PyObject *__pyx_n_u_commentline;
static PyObject *__pyx_n_s_compile;
static PyObject *__pyx_n_s_compile_time_value;
static PyObject *__pyx_n_s_complex;
static PyObject *__pyx_n_u_complex;
static PyObject *__pyx_n_s_components;
static PyObject *__pyx_n_s_cond;
static PyObject *__pyx_n_s_condition;
static PyObject *__pyx_n_u_const;
static PyObject *__pyx_n_s_constant_result;
static PyObject *__pyx_n_u_continue;
static PyObject *__pyx_n_s_conversion_char;
static PyObject *__pyx_n_u_cpdef;
static PyObject *__pyx_n_u_cpp_class;
static PyObject *__pyx_n_s_cppclass;
static PyObject *__pyx_n_u_cppclass;
static PyObject *__pyx_n_s_create_wrapper;
static PyObject *__pyx_n_s_ctx;
static PyObject *__pyx_n_u_ctypedef;
static PyObject *__pyx_kp_u_ctypedef_statement_not_allowed_h;
static PyObject *__pyx_n_s_d;
static PyObject *__pyx_n_s_declarator;
static PyObject *__pyx_n_s_declarators;
static PyObject *__pyx_n_s_decorator;
static PyObject *__pyx_kp_u_decorator_not_allowed_here;
static PyObject *__pyx_n_s_decorators;
static PyObject *__pyx_n_u_def;
static PyObject *__pyx_kp_u_def_statement_not_allowed_here;
static PyObject *__pyx_n_s_default;
static PyObject *__pyx_kp_u_default_values_cannot_be_specifi;
static PyObject *__pyx_n_u_del;
static PyObject *__pyx_n_s_dict;
static PyObject *__pyx_n_u_dict_2;
static PyObject *__pyx_n_s_dict_type;
static PyObject *__pyx_n_s_dimension;
static PyObject *__pyx_n_s_directive_comments;
static PyObject *__pyx_n_s_division;
static PyObject *__pyx_n_s_doc;
static PyObject *__pyx_n_s_doc_2;
static PyObject *__pyx_n_u_double;
static PyObject *__pyx_n_u_elif;
static PyObject *__pyx_n_u_else;
static PyObject *__pyx_n_s_else_clause;
static PyObject *__pyx_n_s_empty;
static PyObject *__pyx_kp_u_empty_expression_not_allowed_in;
static PyObject *__pyx_n_s_encoding;
static PyObject *__pyx_n_s_enter;
static PyObject *__pyx_n_u_enum;
static PyObject *__pyx_n_s_error;
static PyObject *__pyx_n_s_exc_tb;
static PyObject *__pyx_n_s_exc_type;
static PyObject *__pyx_n_s_exc_value;
static PyObject *__pyx_n_u_except;
static PyObject *__pyx_n_s_except_clauses;
static PyObject *__pyx_n_s_exception_check;
static PyObject *__pyx_n_s_exception_value;
static PyObject *__pyx_n_u_exec;
static PyObject *__pyx_n_s_exit;
static PyObject *__pyx_kp_u_expected_expression_found;
static PyObject *__pyx_kp_u_expected_one_of_def_for_with_aft;
static PyObject *__pyx_kp_u_expected_tuple_of_length_2_or_3;
static PyObject *__pyx_n_s_expr;
static PyObject *__pyx_n_s_extend;
static PyObject *__pyx_n_u_extern;
static PyObject *__pyx_n_s_f;
static PyObject *__pyx_n_u_f;
static PyObject *__pyx_kp_u_f_string_not_allowed_here;
static PyObject *__pyx_n_s_false_val;
static PyObject *__pyx_n_u_fastcall;
static PyObject *__pyx_n_s_fatal;
static PyObject *__pyx_n_u_finally;
static PyObject *__pyx_n_s_finally_clause;
static PyObject *__pyx_n_s_find_conversion_func;
static PyObject *__pyx_n_s_find_include_file;
static PyObject *__pyx_n_u_float;
static PyObject *__pyx_n_u_for;
static PyObject *__pyx_n_s_force_py3_semantics;
static PyObject *__pyx_n_s_format_spec;
static PyObject *__pyx_kp_u_format_string_cannot_include;
static PyObject *__pyx_n_u_from;
static PyObject *__pyx_kp_u_from___future___imports_must_occ;
static PyObject *__pyx_n_s_full_module_name;
static PyObject *__pyx_n_s_function;
static PyObject *__pyx_n_u_function;
static PyObject *__pyx_n_s_functools;
static PyObject *__pyx_n_u_fused;
static PyObject *__pyx_n_u_future;
static PyObject *__pyx_n_s_future_directives;
static PyObject *__pyx_kp_u_future_feature_s_is_not_defined;
static PyObject *__pyx_n_s_getchar;
static PyObject *__pyx_n_s_getstrings;
static PyObject *__pyx_n_u_gil;
static PyObject *__pyx_n_u_global;
static PyObject *__pyx_n_s_group;
static PyObject *__pyx_n_s_has_local_scope;
static PyObject *__pyx_n_s_has_varargs;
static PyObject *__pyx_n_u_if;
static PyObject *__pyx_n_s_if_clauses;
static PyObject *__pyx_n_s_ignore_unknown;
static PyObject *__pyx_kp_u_illegal_integer_literal_syntax_i;
static PyObject *__pyx_n_u_import;
static PyObject *__pyx_n_s_import_2;
static PyObject *__pyx_n_s_imported_names;
static PyObject *__pyx_n_u_in;
static PyObject *__pyx_n_s_in_pxd;
static PyObject *__pyx_n_s_in_pyfunc;
static PyObject *__pyx_n_u_include;
static PyObject *__pyx_n_s_include_file;
static PyObject *__pyx_kp_u_include_statement_not_allowed_he;
static PyObject *__pyx_n_s_index;
static PyObject *__pyx_n_s_init;
static PyObject *__pyx_n_s_initial_pos;
static PyObject *__pyx_n_u_inline;
static PyObject *__pyx_n_u_int;
static PyObject *__pyx_n_s_intern_ustring;
static PyObject *__pyx_kp_u_internal_parser_configuration_er;
static PyObject *__pyx_kp_u_invalid_character_literal_r;
static PyObject *__pyx_kp_u_invalid_conversion_char_at_end_o;
static PyObject *__pyx_kp_u_invalid_conversion_character_s;
static PyObject *__pyx_kp_u_invalid_string_kind_s;
static PyObject *__pyx_kp_u_invalid_syntax;
static PyObject *__pyx_n_s_io;
static PyObject *__pyx_n_u_is;
static PyObject *__pyx_n_s_is_absolute;
static PyObject *__pyx_n_s_is_async;
static PyObject *__pyx_n_s_is_async_def;
static PyObject *__pyx_n_s_is_basic_c_type;
static PyObject *__pyx_n_s_is_c_literal;
static PyObject *__pyx_n_s_is_const_method;
static PyObject *__pyx_n_s_is_dict_literal;
static PyObject *__pyx_n_s_is_except_as;
static PyObject *__pyx_n_s_is_name;
static PyObject *__pyx_n_u_is_not;
static PyObject *__pyx_n_s_is_self_arg;
static PyObject *__pyx_n_s_is_set_literal;
static PyObject *__pyx_n_s_is_starred;
static PyObject *__pyx_n_s_is_string_literal;
static PyObject *__pyx_n_s_is_type;
static PyObject *__pyx_n_s_items;
static PyObject *__pyx_kp_u_iterable_unpacking_cannot_be_use;
static PyObject *__pyx_n_s_iterator;
static PyObject *__pyx_n_s_join_bytes;
static PyObject *__pyx_n_s_key;
static PyObject *__pyx_n_s_key_expr;
static PyObject *__pyx_n_s_key_value_pairs;
static PyObject *__pyx_n_s_keyword_args;
static PyObject *__pyx_n_s_kind;
static PyObject *__pyx_n_s_kw_only;
static PyObject *__pyx_n_s_kwds;
static PyObject *__pyx_n_u_lambda;
static PyObject *__pyx_n_s_language_level;
static PyObject *__pyx_n_u_language_level;
static PyObject *__pyx_n_s_level;
static PyObject *__pyx_n_s_lhs;
static PyObject *__pyx_n_s_lhs_list;
static PyObject *__pyx_n_s_list_type;
static PyObject *__pyx_n_u_long;
static PyObject *__pyx_n_s_longness;
static PyObject *__pyx_n_s_lookup;
static PyObject *__pyx_n_s_loop;
static PyObject *__pyx_n_s_lower;
static PyObject *__pyx_n_s_lstrip;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_make_slice_node;
static PyObject *__pyx_n_s_manager;
static PyObject *__pyx_n_s_match;
static PyObject *__pyx_n_s_metaclass;
static PyObject *__pyx_kp_u_missing_in_format_specifier;
static PyObject *__pyx_kp_u_missing_in_format_string_express;
static PyObject *__pyx_kp_u_missing_in_format_string_express_2;
static PyObject *__pyx_n_s_modifiers;
static PyObject *__pyx_n_s_module;
static PyObject *__pyx_n_u_module;
static PyObject *__pyx_n_s_module_2;
static PyObject *__pyx_n_s_module_name;
static PyObject *__pyx_n_s_module_path;
static PyObject *__pyx_n_u_module_pxd;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_name_list;
static PyObject *__pyx_n_s_names;
static PyObject *__pyx_n_s_namespace;
static PyObject *__pyx_n_u_namespace;
static PyObject *__pyx_n_u_new;
static PyObject *__pyx_n_s_node;
static PyObject *__pyx_n_s_nogil;
static PyObject *__pyx_n_u_nogil;
static PyObject *__pyx_n_s_nonempty;
static PyObject *__pyx_n_s_nonempty_declarators;
static PyObject *__pyx_n_u_nonlocal;
static PyObject *__pyx_n_u_not;
static PyObject *__pyx_kp_u_not_a_chance;
static PyObject *__pyx_n_u_not_in;
static PyObject *__pyx_n_s_not_none;
static PyObject *__pyx_n_s_obj;
static PyObject *__pyx_n_s_object;
static PyObject *__pyx_n_u_object;
static PyObject *__pyx_n_s_objstruct_name;
static PyObject *__pyx_n_s_open_source_file;
static PyObject *__pyx_n_s_operand;
static PyObject *__pyx_n_s_operand1;
static PyObject *__pyx_n_s_operand2;
static PyObject *__pyx_n_s_operator;
static PyObject *__pyx_n_u_operator;
static PyObject *__pyx_n_u_or;
static PyObject *__pyx_kp_u_or_2;
static PyObject *__pyx_n_s_or_none;
static PyObject *__pyx_n_u_other;
static PyObject *__pyx_n_s_overridable;
static PyObject *__pyx_n_s_p_c_arg_list;
static PyObject *__pyx_n_s_p_c_base_type;
static PyObject *__pyx_n_s_p_c_declarator;
static PyObject *__pyx_n_s_p_code;
static PyObject *__pyx_n_s_p_module;
static PyObject *__pyx_n_s_packed;
static PyObject *__pyx_n_u_packed;
static PyObject *__pyx_n_s_parent_scanner;
static PyObject *__pyx_n_s_parse_comments;
static PyObject *__pyx_n_s_parse_directive_list;
static PyObject *__pyx_n_s_partial;
static PyObject *__pyx_n_u_pass;
static PyObject *__pyx_n_s_pattern;
static PyObject *__pyx_n_s_pos;
static PyObject *__pyx_n_u_pos;
static PyObject *__pyx_n_s_positional_args;
static PyObject *__pyx_n_s_prepare;
static PyObject *__pyx_n_u_print;
static PyObject *__pyx_n_s_print_parse_tree;
static PyObject *__pyx_n_u_private;
static PyObject *__pyx_n_u_property;
static PyObject *__pyx_n_u_ptrdiff_t;
static PyObject *__pyx_n_u_public;
static PyObject *__pyx_n_s_put_back;
static PyObject *__pyx_n_s_pxd;
static PyObject *__pyx_n_u_pxd;
static PyObject *__pyx_n_s_pyx_vtable;
static PyObject *__pyx_n_s_qualname;
static PyObject *__pyx_n_u_r;
static PyObject *__pyx_n_u_raise;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_re;
static PyObject *__pyx_n_u_readonly;
static PyObject *__pyx_n_s_reduce;
static PyObject *__pyx_n_s_reject_duplicates;
static PyObject *__pyx_n_s_relation1;
static PyObject *__pyx_n_s_relation2;
static PyObject *__pyx_n_s_relative_level;
static PyObject *__pyx_n_s_replace;
static PyObject *__pyx_n_s_result_expr;
static PyObject *__pyx_n_u_return;
static PyObject *__pyx_n_s_return_type_annotation;
static PyObject *__pyx_n_s_rhs;
static PyObject *__pyx_n_s_rstrip;
static PyObject *__pyx_kp_u_s;
static PyObject *__pyx_n_s_s_2;
static PyObject *__pyx_kp_u_s_3;
static PyObject *__pyx_kp_u_s_4;
static PyObject *__pyx_kp_u_s_5;
static PyObject *__pyx_kp_u_s_None_only_allowed_in_Python_f;
static PyObject *__pyx_kp_u_s_cython_s_s_w_s;
static PyObject *__pyx_kp_u_s_on_something_that_is_not_a_fu;
static PyObject *__pyx_kp_u_s_s;
static PyObject *__pyx_kp_u_s_s_2;
static PyObject *__pyx_kp_u_s_s_3;
static PyObject *__pyx_n_s_self;
static PyObject *__pyx_n_s_self_flag;
static PyObject *__pyx_n_s_sequence;
static PyObject *__pyx_n_u_set;
static PyObject *__pyx_n_s_set_language_level;
static PyObject *__pyx_n_s_set_type;
static PyObject *__pyx_n_u_short;
static PyObject *__pyx_n_s_signed;
static PyObject *__pyx_n_u_signed;
static PyObject *__pyx_kp_u_single_encountered_in_format_str;
static PyObject *__pyx_n_u_size_t;
static PyObject *__pyx_n_u_sizeof;
static PyObject *__pyx_n_s_source_encoding;
static PyObject *__pyx_n_s_split;
static PyObject *__pyx_n_u_ssize_t;
static PyObject *__pyx_n_s_star_arg;
static PyObject *__pyx_n_s_starstar_arg;
static PyObject *__pyx_n_s_start;
static PyObject *__pyx_n_s_state;
static PyObject *__pyx_n_s_stats;
static PyObject *__pyx_n_u_stdcall;
static PyObject *__pyx_n_s_step;
static PyObject *__pyx_n_s_stop;
static PyObject *__pyx_n_s_stream;
static PyObject *__pyx_n_s_strip;
static PyObject *__pyx_n_u_struct;
static PyObject *__pyx_n_s_sys;
static PyObject *__pyx_n_s_tag;
static PyObject *__pyx_n_u_tag;
static PyObject *__pyx_n_s_target;
static PyObject *__pyx_n_u_template;
static PyObject *__pyx_n_s_templates;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_test_2;
static PyObject *__pyx_kp_s_tmp_pip_install_9i_72p5f_cython;
static PyObject *__pyx_n_s_true_val;
static PyObject *__pyx_n_s_truedivision;
static PyObject *__pyx_n_u_try;
static PyObject *__pyx_kp_u_tuple_variant_of_exec_does_not_s;
static PyObject *__pyx_n_s_type;
static PyObject *__pyx_n_u_type;
static PyObject *__pyx_n_s_typecheck;
static PyObject *__pyx_n_s_typedef_flag;
static PyObject *__pyx_n_s_typeobj_name;
static PyObject *__pyx_n_s_types;
static PyObject *__pyx_n_u_u;
static PyObject *__pyx_n_u_ub;
static PyObject *__pyx_kp_u_unexpected_sitem_found_in_s_lite;
static PyObject *__pyx_n_s_unicode;
static PyObject *__pyx_n_s_unicode_literals;
static PyObject *__pyx_n_s_unicode_value;
static PyObject *__pyx_n_s_unicodedata;
static PyObject *__pyx_n_u_union;
static PyObject *__pyx_n_s_unop_node;
static PyObject *__pyx_n_s_unsigned;
static PyObject *__pyx_n_u_unsigned;
static PyObject *__pyx_n_s_update;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_n_s_value_expr;
static PyObject *__pyx_n_s_values;
static PyObject *__pyx_n_s_version_info;
static PyObject *__pyx_n_s_visibility;
static PyObject *__pyx_n_u_void;
static PyObject *__pyx_n_s_warning;
static PyObject *__pyx_n_u_while;
static PyObject *__pyx_n_u_with;
static PyObject *__pyx_n_s_with_gil;
static PyObject *__pyx_kp_u_with_gil_nogil_cannot_be_async;
static PyObject *__pyx_n_s_write;
static PyObject *__pyx_n_u_yield;
static PyObject *__pyx_kp_u_yield_from_requires_a_source_ar;
static PyObject *__pyx_n_s_zip;
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_3Ctx___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_kwds); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_3Ctx_2__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_kwds); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_make_slice_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pos, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_2p_c_base_type(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, int __pyx_v_self_flag, int __pyx_v_nonempty, PyObject *__pyx_v_templates); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_4p_c_declarator(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, int __pyx_v_empty, int __pyx_v_is_type, int __pyx_v_cmethod_flag, int __pyx_v_assignable, int __pyx_v_nonempty, int __pyx_v_calling_convention_allowed); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_6p_c_arg_list(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, int __pyx_v_in_pyfunc, int __pyx_v_cmethod_flag, int __pyx_v_nonempty_declarators, int __pyx_v_kw_only, int __pyx_v_annotated); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_8p_code(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_level, PyObject *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_10p_module(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pxd, PyObject *__pyx_v_full_module_name, PyObject *__pyx_v_ctx); /* proto */
static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_12print_parse_tree(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_f, PyObject *__pyx_v_node, PyObject *__pyx_v_level, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_2;
static PyObject *__pyx_int_3;
static PyObject *__pyx_int_8;
static PyObject *__pyx_int_16;
static PyObject *__pyx_int_1114111;
static PyObject *__pyx_int_neg_1;
static PyObject *__pyx_k__108;
static PyObject *__pyx_k__118;
static PyObject *__pyx_k__125;
static PyObject *__pyx_k__134;
static PyObject *__pyx_k__136;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__5;
static PyObject *__pyx_slice__49;
static PyObject *__pyx_slice__84;
static PyObject *__pyx_tuple__10;
static PyObject *__pyx_tuple__12;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__17;
static PyObject *__pyx_tuple__20;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__32;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__45;
static PyObject *__pyx_tuple__46;
static PyObject *__pyx_tuple__51;
static PyObject *__pyx_tuple__52;
static PyObject *__pyx_tuple__53;
static PyObject *__pyx_tuple__55;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__57;
static PyObject *__pyx_tuple__58;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__60;
static PyObject *__pyx_tuple__61;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__65;
static PyObject *__pyx_tuple__68;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__72;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__75;
static PyObject *__pyx_tuple__77;
static PyObject *__pyx_tuple__78;
static PyObject *__pyx_tuple__79;
static PyObject *__pyx_tuple__80;
static PyObject *__pyx_tuple__81;
static PyObject *__pyx_tuple__82;
static PyObject *__pyx_tuple__85;
static PyObject *__pyx_tuple__86;
static PyObject *__pyx_tuple__87;
static PyObject *__pyx_tuple__88;
static PyObject *__pyx_tuple__89;
static PyObject *__pyx_tuple__90;
static PyObject *__pyx_tuple__91;
static PyObject *__pyx_tuple__92;
static PyObject *__pyx_tuple__93;
static PyObject *__pyx_tuple__94;
static PyObject *__pyx_tuple__95;
static PyObject *__pyx_tuple__97;
static PyObject *__pyx_tuple__98;
static PyObject *__pyx_tuple__99;
static PyObject *__pyx_slice__115;
static PyObject *__pyx_slice__130;
static PyObject *__pyx_tuple__100;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__102;
static PyObject *__pyx_tuple__103;
static PyObject *__pyx_tuple__104;
static PyObject *__pyx_tuple__105;
static PyObject *__pyx_tuple__106;
static PyObject *__pyx_tuple__107;
static PyObject *__pyx_tuple__109;
static PyObject *__pyx_tuple__110;
static PyObject *__pyx_tuple__111;
static PyObject *__pyx_tuple__112;
static PyObject *__pyx_tuple__113;
static PyObject *__pyx_tuple__114;
static PyObject *__pyx_tuple__116;
static PyObject *__pyx_tuple__117;
static PyObject *__pyx_tuple__119;
static PyObject *__pyx_tuple__126;
static PyObject *__pyx_tuple__127;
static PyObject *__pyx_tuple__128;
static PyObject *__pyx_tuple__129;
static PyObject *__pyx_tuple__132;
static PyObject *__pyx_tuple__133;
static PyObject *__pyx_tuple__135;
static PyObject *__pyx_tuple__137;
static PyObject *__pyx_tuple__140;
static PyObject *__pyx_tuple__141;
static PyObject *__pyx_tuple__143;
static PyObject *__pyx_tuple__148;
static PyObject *__pyx_tuple__150;
static PyObject *__pyx_tuple__152;
static PyObject *__pyx_tuple__153;
static PyObject *__pyx_tuple__154;
static PyObject *__pyx_tuple__155;
static PyObject *__pyx_tuple__156;
static PyObject *__pyx_tuple__157;
static PyObject *__pyx_tuple__158;
static PyObject *__pyx_tuple__159;
static PyObject *__pyx_tuple__163;
static PyObject *__pyx_tuple__165;
static PyObject *__pyx_tuple__167;
static PyObject *__pyx_tuple__168;
static PyObject *__pyx_tuple__170;
static PyObject *__pyx_codeobj__142;
static PyObject *__pyx_codeobj__144;
static PyObject *__pyx_codeobj__149;
static PyObject *__pyx_codeobj__151;
static PyObject *__pyx_codeobj__160;
static PyObject *__pyx_codeobj__164;
static PyObject *__pyx_codeobj__166;
static PyObject *__pyx_codeobj__169;
static PyObject *__pyx_codeobj__171;

/* "Cython/Compiler/Parsing.py":52
 *     allow_struct_enum_decorator = False
 * 
 *     def __init__(self, **kwds):             # <<<<<<<<<<<<<<
 *         self.__dict__.update(kwds)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_3Ctx_1__init__ = {"__init__", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_kwds = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  __pyx_v_kwds = PyDict_New(); if (unlikely(!__pyx_v_kwds)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwds);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwds, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 52, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 52, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_kwds); __pyx_v_kwds = 0;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.Ctx.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_3Ctx___init__(__pyx_self, __pyx_v_self, __pyx_v_kwds);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_kwds);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_3Ctx___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_kwds) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "Cython/Compiler/Parsing.py":53
 * 
 *     def __init__(self, **kwds):
 *         self.__dict__.update(kwds)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, **kwds):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (!__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_kwds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_kwds};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_kwds};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
      __Pyx_INCREF(__pyx_v_kwds);
      __Pyx_GIVEREF(__pyx_v_kwds);
      PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_kwds);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":52
 *     allow_struct_enum_decorator = False
 * 
 *     def __init__(self, **kwds):             # <<<<<<<<<<<<<<
 *         self.__dict__.update(kwds)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.Ctx.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":55
 *         self.__dict__.update(kwds)
 * 
 *     def __call__(self, **kwds):             # <<<<<<<<<<<<<<
 *         ctx = Ctx()
 *         d = ctx.__dict__
 */

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_3__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_3Ctx_3__call__ = {"__call__", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_3__call__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_3__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_kwds = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  __pyx_v_kwds = PyDict_New(); if (unlikely(!__pyx_v_kwds)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwds);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwds, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 55, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 55, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_kwds); __pyx_v_kwds = 0;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.Ctx.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_3Ctx_2__call__(__pyx_self, __pyx_v_self, __pyx_v_kwds);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_kwds);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_3Ctx_2__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_kwds) {
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("__call__", 0);

  /* "Cython/Compiler/Parsing.py":56
 * 
 *     def __call__(self, **kwds):
 *         ctx = Ctx()             # <<<<<<<<<<<<<<
 *         d = ctx.__dict__
 *         d.update(self.__dict__)
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_ctx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":57
 *     def __call__(self, **kwds):
 *         ctx = Ctx()
 *         d = ctx.__dict__             # <<<<<<<<<<<<<<
 *         d.update(self.__dict__)
 *         d.update(kwds)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_d = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":58
 *         ctx = Ctx()
 *         d = ctx.__dict__
 *         d.update(self.__dict__)             # <<<<<<<<<<<<<<
 *         d.update(kwds)
 *         return ctx
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (!__pyx_t_4) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":59
 *         d = ctx.__dict__
 *         d.update(self.__dict__)
 *         d.update(kwds)             # <<<<<<<<<<<<<<
 *         return ctx
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (!__pyx_t_5) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kwds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_kwds};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_kwds};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
      __Pyx_INCREF(__pyx_v_kwds);
      __Pyx_GIVEREF(__pyx_v_kwds);
      PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_kwds);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":60
 *         d.update(self.__dict__)
 *         d.update(kwds)
 *         return ctx             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ctx);
  __pyx_r = __pyx_v_ctx;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":55
 *         self.__dict__.update(kwds)
 * 
 *     def __call__(self, **kwds):             # <<<<<<<<<<<<<<
 *         ctx = Ctx()
 *         d = ctx.__dict__
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.Ctx.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":63
 * 
 * 
 * def p_ident(s, message="Expected an identifier"):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT':
 *         name = s.systring
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ident(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_ident *__pyx_optional_args) {
  PyObject *__pyx_v_message = ((PyObject *)__pyx_kp_u_Expected_an_identifier);
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_ident", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_message = __pyx_optional_args->message;
    }
  }

  /* "Cython/Compiler/Parsing.py":64
 * 
 * def p_ident(s, message="Expected an identifier"):
 *     if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 64, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":65
 * def p_ident(s, message="Expected an identifier"):
 *     if s.sy == 'IDENT':
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         return name
 */
    __pyx_t_2 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":66
 *     if s.sy == 'IDENT':
 *         name = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         return name
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":67
 *         name = s.systring
 *         s.next()
 *         return name             # <<<<<<<<<<<<<<
 *     else:
 *         s.error(message)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_name);
    __pyx_r = __pyx_v_name;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":64
 * 
 * def p_ident(s, message="Expected an identifier"):
 *     if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":69
 *         return name
 *     else:
 *         s.error(message)             # <<<<<<<<<<<<<<
 * 
 * def p_ident_list(s):
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    if (!__pyx_t_4) {
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_message};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_message};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 69, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_message);
        __Pyx_GIVEREF(__pyx_v_message);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_message);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":63
 * 
 * 
 * def p_ident(s, message="Expected an identifier"):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT':
 *         name = s.systring
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_ident", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":71
 *         s.error(message)
 * 
 * def p_ident_list(s):             # <<<<<<<<<<<<<<
 *     names = []
 *     while s.sy == 'IDENT':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ident_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("p_ident_list", 0);

  /* "Cython/Compiler/Parsing.py":72
 * 
 * def p_ident_list(s):
 *     names = []             # <<<<<<<<<<<<<<
 *     while s.sy == 'IDENT':
 *         names.append(s.systring)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":73
 * def p_ident_list(s):
 *     names = []
 *     while s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         names.append(s.systring)
 *         s.next()
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 73, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":74
 *     names = []
 *     while s.sy == 'IDENT':
 *         names.append(s.systring)             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy != ',':
 */
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 74, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":75
 *     while s.sy == 'IDENT':
 *         names.append(s.systring)
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":76
 *         names.append(s.systring)
 *         s.next()
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 76, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":77
 *         s.next()
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     return names
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":76
 *         names.append(s.systring)
 *         s.next()
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":78
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return names
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":79
 *             break
 *         s.next()
 *     return names             # <<<<<<<<<<<<<<
 * 
 * #------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_names);
  __pyx_r = __pyx_v_names;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":71
 *         s.error(message)
 * 
 * def p_ident_list(s):             # <<<<<<<<<<<<<<
 *     names = []
 *     while s.sy == 'IDENT':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_ident_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":87
 * #------------------------------------------
 * 
 * def p_binop_operator(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     op = s.sy
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_binop_operator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_binop_operator", 0);

  /* "Cython/Compiler/Parsing.py":88
 * 
 * def p_binop_operator(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     op = s.sy
 *     s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":89
 * def p_binop_operator(s):
 *     pos = s.position()
 *     op = s.sy             # <<<<<<<<<<<<<<
 *     s.next()
 *     return op, pos
 */
  __pyx_t_1 = __pyx_v_s->sy;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_op = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":90
 *     pos = s.position()
 *     op = s.sy
 *     s.next()             # <<<<<<<<<<<<<<
 *     return op, pos
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":91
 *     op = s.sy
 *     s.next()
 *     return op, pos             # <<<<<<<<<<<<<<
 * 
 * def p_binop_expr(s, ops, p_sub_expr):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_op);
  __Pyx_GIVEREF(__pyx_v_op);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_op);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pos);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":87
 * #------------------------------------------
 * 
 * def p_binop_operator(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     op = s.sy
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_binop_operator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":93
 *     return op, pos
 * 
 * def p_binop_expr(s, ops, p_sub_expr):             # <<<<<<<<<<<<<<
 *     n1 = p_sub_expr(s)
 *     while s.sy in ops:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ops, __pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func __pyx_v_p_sub_expr) {
  PyObject *__pyx_v_n1 = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_n2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_binop_expr", 0);

  /* "Cython/Compiler/Parsing.py":94
 * 
 * def p_binop_expr(s, ops, p_sub_expr):
 *     n1 = p_sub_expr(s)             # <<<<<<<<<<<<<<
 *     while s.sy in ops:
 *         op, pos = p_binop_operator(s)
 */
  __pyx_t_1 = __pyx_v_p_sub_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":95
 * def p_binop_expr(s, ops, p_sub_expr):
 *     n1 = p_sub_expr(s)
 *     while s.sy in ops:             # <<<<<<<<<<<<<<
 *         op, pos = p_binop_operator(s)
 *         n2 = p_sub_expr(s)
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_ops, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 95, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":96
 *     n1 = p_sub_expr(s)
 *     while s.sy in ops:
 *         op, pos = p_binop_operator(s)             # <<<<<<<<<<<<<<
 *         n2 = p_sub_expr(s)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_operator(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(__pyx_t_1 != Py_None)) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 96, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 96, __pyx_L1_error)
    }
    __Pyx_XDECREF_SET(__pyx_v_op, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_pos, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":97
 *     while s.sy in ops:
 *         op, pos = p_binop_operator(s)
 *         n2 = p_sub_expr(s)             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *         if op == '/':
 */
    __pyx_t_1 = __pyx_v_p_sub_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_n2, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":98
 *         op, pos = p_binop_operator(s)
 *         n2 = p_sub_expr(s)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)             # <<<<<<<<<<<<<<
 *         if op == '/':
 *             if Future.division in s.context.future_directives:
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_pos, __pyx_v_op, __pyx_v_n1, __pyx_v_n2};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_pos, __pyx_v_op, __pyx_v_n1, __pyx_v_n2};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 98, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_pos);
      __Pyx_INCREF(__pyx_v_op);
      __Pyx_GIVEREF(__pyx_v_op);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_op);
      __Pyx_INCREF(__pyx_v_n1);
      __Pyx_GIVEREF(__pyx_v_n1);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n1);
      __Pyx_INCREF(__pyx_v_n2);
      __Pyx_GIVEREF(__pyx_v_n2);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_n2);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":99
 *         n2 = p_sub_expr(s)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *         if op == '/':             # <<<<<<<<<<<<<<
 *             if Future.division in s.context.future_directives:
 *                 n1.truedivision = True
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_kp_u__2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 99, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":100
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *         if op == '/':
 *             if Future.division in s.context.future_directives:             # <<<<<<<<<<<<<<
 *                 n1.truedivision = True
 *             else:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_n_s_division); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 100, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_5, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 100, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":101
 *         if op == '/':
 *             if Future.division in s.context.future_directives:
 *                 n1.truedivision = True             # <<<<<<<<<<<<<<
 *             else:
 *                 n1.truedivision = None # unknown
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_n1, __pyx_n_s_truedivision, Py_True) < 0) __PYX_ERR(0, 101, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":100
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *         if op == '/':
 *             if Future.division in s.context.future_directives:             # <<<<<<<<<<<<<<
 *                 n1.truedivision = True
 *             else:
 */
        goto __pyx_L6;
      }

      /* "Cython/Compiler/Parsing.py":103
 *                 n1.truedivision = True
 *             else:
 *                 n1.truedivision = None # unknown             # <<<<<<<<<<<<<<
 *     return n1
 * 
 */
      /*else*/ {
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_n1, __pyx_n_s_truedivision, Py_None) < 0) __PYX_ERR(0, 103, __pyx_L1_error)
      }
      __pyx_L6:;

      /* "Cython/Compiler/Parsing.py":99
 *         n2 = p_sub_expr(s)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *         if op == '/':             # <<<<<<<<<<<<<<
 *             if Future.division in s.context.future_directives:
 *                 n1.truedivision = True
 */
    }
  }

  /* "Cython/Compiler/Parsing.py":104
 *             else:
 *                 n1.truedivision = None # unknown
 *     return n1             # <<<<<<<<<<<<<<
 * 
 * #lambdef: 'lambda' [varargslist] ':' test
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_n1);
  __pyx_r = __pyx_v_n1;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":93
 *     return op, pos
 * 
 * def p_binop_expr(s, ops, p_sub_expr):             # <<<<<<<<<<<<<<
 *     n1 = p_sub_expr(s)
 *     while s.sy in ops:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_binop_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_n1);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_n2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":108
 * #lambdef: 'lambda' [varargslist] ':' test
 * 
 * def p_lambdef(s, allow_conditional=True):             # <<<<<<<<<<<<<<
 *     # s.sy == 'lambda'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_lambdef(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_lambdef *__pyx_optional_args) {
  int __pyx_v_allow_conditional = ((int)1);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_star_arg = NULL;
  PyObject *__pyx_v_starstar_arg = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_RefNannySetupContext("p_lambdef", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_allow_conditional = __pyx_optional_args->allow_conditional;
    }
  }

  /* "Cython/Compiler/Parsing.py":110
 * def p_lambdef(s, allow_conditional=True):
 *     # s.sy == 'lambda'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     if s.sy == ':':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":111
 *     # s.sy == 'lambda'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         args = []
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":112
 *     pos = s.position()
 *     s.next()
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         args = []
 *         star_arg = starstar_arg = None
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 112, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":113
 *     s.next()
 *     if s.sy == ':':
 *         args = []             # <<<<<<<<<<<<<<
 *         star_arg = starstar_arg = None
 *     else:
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_args = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":114
 *     if s.sy == ':':
 *         args = []
 *         star_arg = starstar_arg = None             # <<<<<<<<<<<<<<
 *     else:
 *         args, star_arg, starstar_arg = p_varargslist(
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_star_arg = Py_None;
    __Pyx_INCREF(Py_None);
    __pyx_v_starstar_arg = Py_None;

    /* "Cython/Compiler/Parsing.py":112
 *     pos = s.position()
 *     s.next()
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         args = []
 *         star_arg = starstar_arg = None
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":116
 *         star_arg = starstar_arg = None
 *     else:
 *         args, star_arg, starstar_arg = p_varargslist(             # <<<<<<<<<<<<<<
 *             s, terminator=':', annotated=False)
 *     s.expect(':')
 */
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":117
 *     else:
 *         args, star_arg, starstar_arg = p_varargslist(
 *             s, terminator=':', annotated=False)             # <<<<<<<<<<<<<<
 *     s.expect(':')
 *     if allow_conditional:
 */
    __pyx_t_3.__pyx_n = 2;
    __pyx_t_3.terminator = __pyx_kp_u__3;
    __pyx_t_3.annotated = 0;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_varargslist(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 3)) {
        if (size > 3) __Pyx_RaiseTooManyValuesError(3);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 116, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 116, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L5_unpacking_done;
      __pyx_L4_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 116, __pyx_L1_error)
      __pyx_L5_unpacking_done:;
    }

    /* "Cython/Compiler/Parsing.py":116
 *         star_arg = starstar_arg = None
 *     else:
 *         args, star_arg, starstar_arg = p_varargslist(             # <<<<<<<<<<<<<<
 *             s, terminator=':', annotated=False)
 *     s.expect(':')
 */
    __pyx_v_args = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_star_arg = __pyx_t_5;
    __pyx_t_5 = 0;
    __pyx_v_starstar_arg = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":118
 *         args, star_arg, starstar_arg = p_varargslist(
 *             s, terminator=':', annotated=False)
 *     s.expect(':')             # <<<<<<<<<<<<<<
 *     if allow_conditional:
 *         expr = p_test(s)
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__3, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 118, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":119
 *             s, terminator=':', annotated=False)
 *     s.expect(':')
 *     if allow_conditional:             # <<<<<<<<<<<<<<
 *         expr = p_test(s)
 *     else:
 */
  __pyx_t_2 = (__pyx_v_allow_conditional != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":120
 *     s.expect(':')
 *     if allow_conditional:
 *         expr = p_test(s)             # <<<<<<<<<<<<<<
 *     else:
 *         expr = p_test_nocond(s)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":119
 *             s, terminator=':', annotated=False)
 *     s.expect(':')
 *     if allow_conditional:             # <<<<<<<<<<<<<<
 *         expr = p_test(s)
 *     else:
 */
    goto __pyx_L6;
  }

  /* "Cython/Compiler/Parsing.py":122
 *         expr = p_test(s)
 *     else:
 *         expr = p_test_nocond(s)             # <<<<<<<<<<<<<<
 *     return ExprNodes.LambdaNode(
 *         pos, args = args,
 */
  /*else*/ {
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_nocond(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":123
 *     else:
 *         expr = p_test_nocond(s)
 *     return ExprNodes.LambdaNode(             # <<<<<<<<<<<<<<
 *         pos, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_LambdaNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":124
 *         expr = p_test_nocond(s)
 *     return ExprNodes.LambdaNode(
 *         pos, args = args,             # <<<<<<<<<<<<<<
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 *         result_expr = expr)
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 124, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":125
 *     return ExprNodes.LambdaNode(
 *         pos, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,             # <<<<<<<<<<<<<<
 *         result_expr = expr)
 * 
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_star_arg, __pyx_v_star_arg) < 0) __PYX_ERR(0, 124, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_starstar_arg, __pyx_v_starstar_arg) < 0) __PYX_ERR(0, 124, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":126
 *         pos, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 *         result_expr = expr)             # <<<<<<<<<<<<<<
 * 
 * #lambdef_nocond: 'lambda' [varargslist] ':' test_nocond
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_result_expr, __pyx_v_expr) < 0) __PYX_ERR(0, 124, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":123
 *     else:
 *         expr = p_test_nocond(s)
 *     return ExprNodes.LambdaNode(             # <<<<<<<<<<<<<<
 *         pos, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":108
 * #lambdef: 'lambda' [varargslist] ':' test
 * 
 * def p_lambdef(s, allow_conditional=True):             # <<<<<<<<<<<<<<
 *     # s.sy == 'lambda'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_lambdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_star_arg);
  __Pyx_XDECREF(__pyx_v_starstar_arg);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":130
 * #lambdef_nocond: 'lambda' [varargslist] ':' test_nocond
 * 
 * def p_lambdef_nocond(s):             # <<<<<<<<<<<<<<
 *     return p_lambdef(s, allow_conditional=False)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_lambdef_nocond(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_lambdef __pyx_t_2;
  __Pyx_RefNannySetupContext("p_lambdef_nocond", 0);

  /* "Cython/Compiler/Parsing.py":131
 * 
 * def p_lambdef_nocond(s):
 *     return p_lambdef(s, allow_conditional=False)             # <<<<<<<<<<<<<<
 * 
 * #test: or_test ['if' or_test 'else' test] | lambdef
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.allow_conditional = 0;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_lambdef(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":130
 * #lambdef_nocond: 'lambda' [varargslist] ':' test_nocond
 * 
 * def p_lambdef_nocond(s):             # <<<<<<<<<<<<<<
 *     return p_lambdef(s, allow_conditional=False)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_lambdef_nocond", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":135
 * #test: or_test ['if' or_test 'else' test] | lambdef
 * 
 * def p_test(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'lambda':
 *         return p_lambdef(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_test = NULL;
  PyObject *__pyx_v_other = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_test", 0);

  /* "Cython/Compiler/Parsing.py":136
 * 
 * def p_test(s):
 *     if s.sy == 'lambda':             # <<<<<<<<<<<<<<
 *         return p_lambdef(s)
 *     pos = s.position()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_lambda, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 136, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":137
 * def p_test(s):
 *     if s.sy == 'lambda':
 *         return p_lambdef(s)             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_or_test(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_lambdef(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":136
 * 
 * def p_test(s):
 *     if s.sy == 'lambda':             # <<<<<<<<<<<<<<
 *         return p_lambdef(s)
 *     pos = s.position()
 */
  }

  /* "Cython/Compiler/Parsing.py":138
 *     if s.sy == 'lambda':
 *         return p_lambdef(s)
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     expr = p_or_test(s)
 *     if s.sy == 'if':
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_pos = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":139
 *         return p_lambdef(s)
 *     pos = s.position()
 *     expr = p_or_test(s)             # <<<<<<<<<<<<<<
 *     if s.sy == 'if':
 *         s.next()
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_or_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_expr = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":140
 *     pos = s.position()
 *     expr = p_or_test(s)
 *     if s.sy == 'if':             # <<<<<<<<<<<<<<
 *         s.next()
 *         test = p_or_test(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_if, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 140, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":141
 *     expr = p_or_test(s)
 *     if s.sy == 'if':
 *         s.next()             # <<<<<<<<<<<<<<
 *         test = p_or_test(s)
 *         s.expect('else')
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":142
 *     if s.sy == 'if':
 *         s.next()
 *         test = p_or_test(s)             # <<<<<<<<<<<<<<
 *         s.expect('else')
 *         other = p_test(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_or_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_test = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":143
 *         s.next()
 *         test = p_or_test(s)
 *         s.expect('else')             # <<<<<<<<<<<<<<
 *         other = p_test(s)
 *         return ExprNodes.CondExprNode(pos, test=test, true_val=expr, false_val=other)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_else, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 143, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":144
 *         test = p_or_test(s)
 *         s.expect('else')
 *         other = p_test(s)             # <<<<<<<<<<<<<<
 *         return ExprNodes.CondExprNode(pos, test=test, true_val=expr, false_val=other)
 *     else:
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_other = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":145
 *         s.expect('else')
 *         other = p_test(s)
 *         return ExprNodes.CondExprNode(pos, test=test, true_val=expr, false_val=other)             # <<<<<<<<<<<<<<
 *     else:
 *         return expr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_CondExprNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_test, __pyx_v_test) < 0) __PYX_ERR(0, 145, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_true_val, __pyx_v_expr) < 0) __PYX_ERR(0, 145, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_false_val, __pyx_v_other) < 0) __PYX_ERR(0, 145, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":140
 *     pos = s.position()
 *     expr = p_or_test(s)
 *     if s.sy == 'if':             # <<<<<<<<<<<<<<
 *         s.next()
 *         test = p_or_test(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":147
 *         return ExprNodes.CondExprNode(pos, test=test, true_val=expr, false_val=other)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * #test_nocond: or_test | lambdef_nocond
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":135
 * #test: or_test ['if' or_test 'else' test] | lambdef
 * 
 * def p_test(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'lambda':
 *         return p_lambdef(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_test);
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":151
 * #test_nocond: or_test | lambdef_nocond
 * 
 * def p_test_nocond(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'lambda':
 *         return p_lambdef_nocond(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test_nocond(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_test_nocond", 0);

  /* "Cython/Compiler/Parsing.py":152
 * 
 * def p_test_nocond(s):
 *     if s.sy == 'lambda':             # <<<<<<<<<<<<<<
 *         return p_lambdef_nocond(s)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_lambda, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 152, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":153
 * def p_test_nocond(s):
 *     if s.sy == 'lambda':
 *         return p_lambdef_nocond(s)             # <<<<<<<<<<<<<<
 *     else:
 *         return p_or_test(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_lambdef_nocond(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":152
 * 
 * def p_test_nocond(s):
 *     if s.sy == 'lambda':             # <<<<<<<<<<<<<<
 *         return p_lambdef_nocond(s)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":155
 *         return p_lambdef_nocond(s)
 *     else:
 *         return p_or_test(s)             # <<<<<<<<<<<<<<
 * 
 * #or_test: and_test ('or' and_test)*
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_or_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":151
 * #test_nocond: or_test | lambdef_nocond
 * 
 * def p_test_nocond(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'lambda':
 *         return p_lambdef_nocond(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_test_nocond", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":159
 * #or_test: and_test ('or' and_test)*
 * 
 * def p_or_test(s):             # <<<<<<<<<<<<<<
 *     return p_rassoc_binop_expr(s, ('or',), p_and_test)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_or_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_or_test", 0);

  /* "Cython/Compiler/Parsing.py":160
 * 
 * def p_or_test(s):
 *     return p_rassoc_binop_expr(s, ('or',), p_and_test)             # <<<<<<<<<<<<<<
 * 
 * def p_rassoc_binop_expr(s, ops, p_subexpr):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_rassoc_binop_expr(__pyx_v_s, __pyx_tuple__4, __pyx_f_6Cython_8Compiler_7Parsing_p_and_test); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":159
 * #or_test: and_test ('or' and_test)*
 * 
 * def p_or_test(s):             # <<<<<<<<<<<<<<
 *     return p_rassoc_binop_expr(s, ('or',), p_and_test)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_or_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":162
 *     return p_rassoc_binop_expr(s, ('or',), p_and_test)
 * 
 * def p_rassoc_binop_expr(s, ops, p_subexpr):             # <<<<<<<<<<<<<<
 *     n1 = p_subexpr(s)
 *     if s.sy in ops:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_rassoc_binop_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ops, __pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func __pyx_v_p_subexpr) {
  PyObject *__pyx_v_n1 = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_n2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_rassoc_binop_expr", 0);

  /* "Cython/Compiler/Parsing.py":163
 * 
 * def p_rassoc_binop_expr(s, ops, p_subexpr):
 *     n1 = p_subexpr(s)             # <<<<<<<<<<<<<<
 *     if s.sy in ops:
 *         pos = s.position()
 */
  __pyx_t_1 = __pyx_v_p_subexpr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":164
 * def p_rassoc_binop_expr(s, ops, p_subexpr):
 *     n1 = p_subexpr(s)
 *     if s.sy in ops:             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         op = s.sy
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_ops, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 164, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":165
 *     n1 = p_subexpr(s)
 *     if s.sy in ops:
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         op = s.sy
 *         s.next()
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_pos = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":166
 *     if s.sy in ops:
 *         pos = s.position()
 *         op = s.sy             # <<<<<<<<<<<<<<
 *         s.next()
 *         n2 = p_rassoc_binop_expr(s, ops, p_subexpr)
 */
    __pyx_t_1 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_op = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":167
 *         pos = s.position()
 *         op = s.sy
 *         s.next()             # <<<<<<<<<<<<<<
 *         n2 = p_rassoc_binop_expr(s, ops, p_subexpr)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":168
 *         op = s.sy
 *         s.next()
 *         n2 = p_rassoc_binop_expr(s, ops, p_subexpr)             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *     return n1
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_rassoc_binop_expr(__pyx_v_s, __pyx_v_ops, __pyx_v_p_subexpr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_n2 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":169
 *         s.next()
 *         n2 = p_rassoc_binop_expr(s, ops, p_subexpr)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)             # <<<<<<<<<<<<<<
 *     return n1
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_pos, __pyx_v_op, __pyx_v_n1, __pyx_v_n2};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_pos, __pyx_v_op, __pyx_v_n1, __pyx_v_n2};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_pos);
      __Pyx_INCREF(__pyx_v_op);
      __Pyx_GIVEREF(__pyx_v_op);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_op);
      __Pyx_INCREF(__pyx_v_n1);
      __Pyx_GIVEREF(__pyx_v_n1);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_n1);
      __Pyx_INCREF(__pyx_v_n2);
      __Pyx_GIVEREF(__pyx_v_n2);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_n2);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":164
 * def p_rassoc_binop_expr(s, ops, p_subexpr):
 *     n1 = p_subexpr(s)
 *     if s.sy in ops:             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         op = s.sy
 */
  }

  /* "Cython/Compiler/Parsing.py":170
 *         n2 = p_rassoc_binop_expr(s, ops, p_subexpr)
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *     return n1             # <<<<<<<<<<<<<<
 * 
 * #and_test: not_test ('and' not_test)*
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_n1);
  __pyx_r = __pyx_v_n1;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":162
 *     return p_rassoc_binop_expr(s, ('or',), p_and_test)
 * 
 * def p_rassoc_binop_expr(s, ops, p_subexpr):             # <<<<<<<<<<<<<<
 *     n1 = p_subexpr(s)
 *     if s.sy in ops:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_rassoc_binop_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_n1);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_n2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":174
 * #and_test: not_test ('and' not_test)*
 * 
 * def p_and_test(s):             # <<<<<<<<<<<<<<
 *     #return p_binop_expr(s, ('and',), p_not_test)
 *     return p_rassoc_binop_expr(s, ('and',), p_not_test)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_and_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_and_test", 0);

  /* "Cython/Compiler/Parsing.py":176
 * def p_and_test(s):
 *     #return p_binop_expr(s, ('and',), p_not_test)
 *     return p_rassoc_binop_expr(s, ('and',), p_not_test)             # <<<<<<<<<<<<<<
 * 
 * #not_test: 'not' not_test | comparison
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_rassoc_binop_expr(__pyx_v_s, __pyx_tuple__5, __pyx_f_6Cython_8Compiler_7Parsing_p_not_test); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":174
 * #and_test: not_test ('and' not_test)*
 * 
 * def p_and_test(s):             # <<<<<<<<<<<<<<
 *     #return p_binop_expr(s, ('and',), p_not_test)
 *     return p_rassoc_binop_expr(s, ('and',), p_not_test)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_and_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":180
 * #not_test: 'not' not_test | comparison
 * 
 * def p_not_test(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'not':
 *         pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_not_test(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_not_test", 0);

  /* "Cython/Compiler/Parsing.py":181
 * 
 * def p_not_test(s):
 *     if s.sy == 'not':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_not, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 181, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":182
 * def p_not_test(s):
 *     if s.sy == 'not':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.NotNode(pos, operand = p_not_test(s))
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_pos = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":183
 *     if s.sy == 'not':
 *         pos = s.position()
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.NotNode(pos, operand = p_not_test(s))
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":184
 *         pos = s.position()
 *         s.next()
 *         return ExprNodes.NotNode(pos, operand = p_not_test(s))             # <<<<<<<<<<<<<<
 *     else:
 *         return p_comparison(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NotNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_not_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_operand, __pyx_t_5) < 0) __PYX_ERR(0, 184, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":181
 * 
 * def p_not_test(s):
 *     if s.sy == 'not':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":186
 *         return ExprNodes.NotNode(pos, operand = p_not_test(s))
 *     else:
 *         return p_comparison(s)             # <<<<<<<<<<<<<<
 * 
 * #comparison: expr (comp_op expr)*
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_comparison(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 186, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":180
 * #not_test: 'not' not_test | comparison
 * 
 * def p_not_test(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'not':
 *         pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_not_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":191
 * #comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
 * 
 * def p_comparison(s):             # <<<<<<<<<<<<<<
 *     n1 = p_starred_expr(s)
 *     if s.sy in comparison_ops:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comparison(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_n1 = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_n2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_comparison", 0);

  /* "Cython/Compiler/Parsing.py":192
 * 
 * def p_comparison(s):
 *     n1 = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *     if s.sy in comparison_ops:
 *         pos = s.position()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":193
 * def p_comparison(s):
 *     n1 = p_starred_expr(s)
 *     if s.sy in comparison_ops:             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         op = p_cmp_op(s)
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 193, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":194
 *     n1 = p_starred_expr(s)
 *     if s.sy in comparison_ops:
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         op = p_cmp_op(s)
 *         n2 = p_starred_expr(s)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_pos = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":195
 *     if s.sy in comparison_ops:
 *         pos = s.position()
 *         op = p_cmp_op(s)             # <<<<<<<<<<<<<<
 *         n2 = p_starred_expr(s)
 *         n1 = ExprNodes.PrimaryCmpNode(pos,
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_cmp_op(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_op = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":196
 *         pos = s.position()
 *         op = p_cmp_op(s)
 *         n2 = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.PrimaryCmpNode(pos,
 *             operator = op, operand1 = n1, operand2 = n2)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_n2 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":197
 *         op = p_cmp_op(s)
 *         n2 = p_starred_expr(s)
 *         n1 = ExprNodes.PrimaryCmpNode(pos,             # <<<<<<<<<<<<<<
 *             operator = op, operand1 = n1, operand2 = n2)
 *         if s.sy in comparison_ops:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_PrimaryCmpNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":198
 *         n2 = p_starred_expr(s)
 *         n1 = ExprNodes.PrimaryCmpNode(pos,
 *             operator = op, operand1 = n1, operand2 = n2)             # <<<<<<<<<<<<<<
 *         if s.sy in comparison_ops:
 *             n1.cascade = p_cascaded_cmp(s)
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operator, __pyx_v_op) < 0) __PYX_ERR(0, 198, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operand1, __pyx_v_n1) < 0) __PYX_ERR(0, 198, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operand2, __pyx_v_n2) < 0) __PYX_ERR(0, 198, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":197
 *         op = p_cmp_op(s)
 *         n2 = p_starred_expr(s)
 *         n1 = ExprNodes.PrimaryCmpNode(pos,             # <<<<<<<<<<<<<<
 *             operator = op, operand1 = n1, operand2 = n2)
 *         if s.sy in comparison_ops:
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":199
 *         n1 = ExprNodes.PrimaryCmpNode(pos,
 *             operator = op, operand1 = n1, operand2 = n2)
 *         if s.sy in comparison_ops:             # <<<<<<<<<<<<<<
 *             n1.cascade = p_cascaded_cmp(s)
 *     return n1
 */
    __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 199, __pyx_L1_error)
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":200
 *             operator = op, operand1 = n1, operand2 = n2)
 *         if s.sy in comparison_ops:
 *             n1.cascade = p_cascaded_cmp(s)             # <<<<<<<<<<<<<<
 *     return n1
 * 
 */
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_cascaded_cmp(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 200, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_n1, __pyx_n_s_cascade, __pyx_t_6) < 0) __PYX_ERR(0, 200, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":199
 *         n1 = ExprNodes.PrimaryCmpNode(pos,
 *             operator = op, operand1 = n1, operand2 = n2)
 *         if s.sy in comparison_ops:             # <<<<<<<<<<<<<<
 *             n1.cascade = p_cascaded_cmp(s)
 *     return n1
 */
    }

    /* "Cython/Compiler/Parsing.py":193
 * def p_comparison(s):
 *     n1 = p_starred_expr(s)
 *     if s.sy in comparison_ops:             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         op = p_cmp_op(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":201
 *         if s.sy in comparison_ops:
 *             n1.cascade = p_cascaded_cmp(s)
 *     return n1             # <<<<<<<<<<<<<<
 * 
 * def p_test_or_starred_expr(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_n1);
  __pyx_r = __pyx_v_n1;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":191
 * #comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
 * 
 * def p_comparison(s):             # <<<<<<<<<<<<<<
 *     n1 = p_starred_expr(s)
 *     if s.sy in comparison_ops:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_comparison", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_n1);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_n2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":203
 *     return n1
 * 
 * def p_test_or_starred_expr(s):             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         return p_starred_expr(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_test_or_starred_expr", 0);

  /* "Cython/Compiler/Parsing.py":204
 * 
 * def p_test_or_starred_expr(s):
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         return p_starred_expr(s)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 204, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":205
 * def p_test_or_starred_expr(s):
 *     if s.sy == '*':
 *         return p_starred_expr(s)             # <<<<<<<<<<<<<<
 *     else:
 *         return p_test(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":204
 * 
 * def p_test_or_starred_expr(s):
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         return p_starred_expr(s)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":207
 *         return p_starred_expr(s)
 *     else:
 *         return p_test(s)             # <<<<<<<<<<<<<<
 * 
 * def p_starred_expr(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":203
 *     return n1
 * 
 * def p_test_or_starred_expr(s):             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         return p_starred_expr(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_test_or_starred_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":209
 *         return p_test(s)
 * 
 * def p_starred_expr(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if s.sy == '*':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  int __pyx_v_starred;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_starred_expr", 0);

  /* "Cython/Compiler/Parsing.py":210
 * 
 * def p_starred_expr(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         starred = True
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":211
 * def p_starred_expr(s):
 *     pos = s.position()
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         starred = True
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 211, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":212
 *     pos = s.position()
 *     if s.sy == '*':
 *         starred = True             # <<<<<<<<<<<<<<
 *         s.next()
 *     else:
 */
    __pyx_v_starred = 1;

    /* "Cython/Compiler/Parsing.py":213
 *     if s.sy == '*':
 *         starred = True
 *         s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         starred = False
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":211
 * def p_starred_expr(s):
 *     pos = s.position()
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         starred = True
 *         s.next()
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":215
 *         s.next()
 *     else:
 *         starred = False             # <<<<<<<<<<<<<<
 *     expr = p_bit_expr(s)
 *     if starred:
 */
  /*else*/ {
    __pyx_v_starred = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":216
 *     else:
 *         starred = False
 *     expr = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *     if starred:
 *         expr = ExprNodes.StarredUnpackingNode(pos, expr)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":217
 *         starred = False
 *     expr = p_bit_expr(s)
 *     if starred:             # <<<<<<<<<<<<<<
 *         expr = ExprNodes.StarredUnpackingNode(pos, expr)
 *     return expr
 */
  __pyx_t_2 = (__pyx_v_starred != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":218
 *     expr = p_bit_expr(s)
 *     if starred:
 *         expr = ExprNodes.StarredUnpackingNode(pos, expr)             # <<<<<<<<<<<<<<
 *     return expr
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_StarredUnpackingNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_pos, __pyx_v_expr};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_pos, __pyx_v_expr};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_pos);
      __Pyx_INCREF(__pyx_v_expr);
      __Pyx_GIVEREF(__pyx_v_expr);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_expr);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_expr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":217
 *         starred = False
 *     expr = p_bit_expr(s)
 *     if starred:             # <<<<<<<<<<<<<<
 *         expr = ExprNodes.StarredUnpackingNode(pos, expr)
 *     return expr
 */
  }

  /* "Cython/Compiler/Parsing.py":219
 *     if starred:
 *         expr = ExprNodes.StarredUnpackingNode(pos, expr)
 *     return expr             # <<<<<<<<<<<<<<
 * 
 * def p_cascaded_cmp(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_expr);
  __pyx_r = __pyx_v_expr;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":209
 *         return p_test(s)
 * 
 * def p_starred_expr(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if s.sy == '*':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_starred_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":221
 *     return expr
 * 
 * def p_cascaded_cmp(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     op = p_cmp_op(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cascaded_cmp(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_n2 = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  __Pyx_RefNannySetupContext("p_cascaded_cmp", 0);

  /* "Cython/Compiler/Parsing.py":222
 * 
 * def p_cascaded_cmp(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     op = p_cmp_op(s)
 *     n2 = p_starred_expr(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":223
 * def p_cascaded_cmp(s):
 *     pos = s.position()
 *     op = p_cmp_op(s)             # <<<<<<<<<<<<<<
 *     n2 = p_starred_expr(s)
 *     result = ExprNodes.CascadedCmpNode(pos,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_cmp_op(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_op = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":224
 *     pos = s.position()
 *     op = p_cmp_op(s)
 *     n2 = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *     result = ExprNodes.CascadedCmpNode(pos,
 *         operator = op, operand2 = n2)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n2 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":225
 *     op = p_cmp_op(s)
 *     n2 = p_starred_expr(s)
 *     result = ExprNodes.CascadedCmpNode(pos,             # <<<<<<<<<<<<<<
 *         operator = op, operand2 = n2)
 *     if s.sy in comparison_ops:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_CascadedCmpNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":226
 *     n2 = p_starred_expr(s)
 *     result = ExprNodes.CascadedCmpNode(pos,
 *         operator = op, operand2 = n2)             # <<<<<<<<<<<<<<
 *     if s.sy in comparison_ops:
 *         result.cascade = p_cascaded_cmp(s)
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_operator, __pyx_v_op) < 0) __PYX_ERR(0, 226, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_operand2, __pyx_v_n2) < 0) __PYX_ERR(0, 226, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":225
 *     op = p_cmp_op(s)
 *     n2 = p_starred_expr(s)
 *     result = ExprNodes.CascadedCmpNode(pos,             # <<<<<<<<<<<<<<
 *         operator = op, operand2 = n2)
 *     if s.sy in comparison_ops:
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":227
 *     result = ExprNodes.CascadedCmpNode(pos,
 *         operator = op, operand2 = n2)
 *     if s.sy in comparison_ops:             # <<<<<<<<<<<<<<
 *         result.cascade = p_cascaded_cmp(s)
 *     return result
 */
  __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 227, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":228
 *         operator = op, operand2 = n2)
 *     if s.sy in comparison_ops:
 *         result.cascade = p_cascaded_cmp(s)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_cascaded_cmp(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_cascade, __pyx_t_4) < 0) __PYX_ERR(0, 228, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":227
 *     result = ExprNodes.CascadedCmpNode(pos,
 *         operator = op, operand2 = n2)
 *     if s.sy in comparison_ops:             # <<<<<<<<<<<<<<
 *         result.cascade = p_cascaded_cmp(s)
 *     return result
 */
  }

  /* "Cython/Compiler/Parsing.py":229
 *     if s.sy in comparison_ops:
 *         result.cascade = p_cascaded_cmp(s)
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_cmp_op(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":221
 *     return expr
 * 
 * def p_cascaded_cmp(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     op = p_cmp_op(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cascaded_cmp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_n2);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":231
 *     return result
 * 
 * def p_cmp_op(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'not':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cmp_op(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_cmp_op", 0);

  /* "Cython/Compiler/Parsing.py":232
 * 
 * def p_cmp_op(s):
 *     if s.sy == 'not':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('in')
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_not, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 232, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":233
 * def p_cmp_op(s):
 *     if s.sy == 'not':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect('in')
 *         op = 'not_in'
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":234
 *     if s.sy == 'not':
 *         s.next()
 *         s.expect('in')             # <<<<<<<<<<<<<<
 *         op = 'not_in'
 *     elif s.sy == 'is':
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_in, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 234, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":235
 *         s.next()
 *         s.expect('in')
 *         op = 'not_in'             # <<<<<<<<<<<<<<
 *     elif s.sy == 'is':
 *         s.next()
 */
    __Pyx_INCREF(__pyx_n_u_not_in);
    __pyx_v_op = __pyx_n_u_not_in;

    /* "Cython/Compiler/Parsing.py":232
 * 
 * def p_cmp_op(s):
 *     if s.sy == 'not':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('in')
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":236
 *         s.expect('in')
 *         op = 'not_in'
 *     elif s.sy == 'is':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == 'not':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_is, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 236, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":237
 *         op = 'not_in'
 *     elif s.sy == 'is':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == 'not':
 *             s.next()
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":238
 *     elif s.sy == 'is':
 *         s.next()
 *         if s.sy == 'not':             # <<<<<<<<<<<<<<
 *             s.next()
 *             op = 'is_not'
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_not, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 238, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":239
 *         s.next()
 *         if s.sy == 'not':
 *             s.next()             # <<<<<<<<<<<<<<
 *             op = 'is_not'
 *         else:
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":240
 *         if s.sy == 'not':
 *             s.next()
 *             op = 'is_not'             # <<<<<<<<<<<<<<
 *         else:
 *             op = 'is'
 */
      __Pyx_INCREF(__pyx_n_u_is_not);
      __pyx_v_op = __pyx_n_u_is_not;

      /* "Cython/Compiler/Parsing.py":238
 *     elif s.sy == 'is':
 *         s.next()
 *         if s.sy == 'not':             # <<<<<<<<<<<<<<
 *             s.next()
 *             op = 'is_not'
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":242
 *             op = 'is_not'
 *         else:
 *             op = 'is'             # <<<<<<<<<<<<<<
 *     else:
 *         op = s.sy
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_n_u_is);
      __pyx_v_op = __pyx_n_u_is;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":236
 *         s.expect('in')
 *         op = 'not_in'
 *     elif s.sy == 'is':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == 'not':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":244
 *             op = 'is'
 *     else:
 *         op = s.sy             # <<<<<<<<<<<<<<
 *         s.next()
 *     if op == '<>':
 */
  /*else*/ {
    __pyx_t_2 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_op = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":245
 *     else:
 *         op = s.sy
 *         s.next()             # <<<<<<<<<<<<<<
 *     if op == '<>':
 *         op = '!='
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":246
 *         op = s.sy
 *         s.next()
 *     if op == '<>':             # <<<<<<<<<<<<<<
 *         op = '!='
 *     return op
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_kp_u__7, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 246, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":247
 *         s.next()
 *     if op == '<>':
 *         op = '!='             # <<<<<<<<<<<<<<
 *     return op
 * 
 */
    __Pyx_INCREF(__pyx_kp_u__8);
    __Pyx_DECREF_SET(__pyx_v_op, __pyx_kp_u__8);

    /* "Cython/Compiler/Parsing.py":246
 *         op = s.sy
 *         s.next()
 *     if op == '<>':             # <<<<<<<<<<<<<<
 *         op = '!='
 *     return op
 */
  }

  /* "Cython/Compiler/Parsing.py":248
 *     if op == '<>':
 *         op = '!='
 *     return op             # <<<<<<<<<<<<<<
 * 
 * comparison_ops = cython.declare(set, set([
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_op);
  __pyx_r = __pyx_v_op;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":231
 *     return result
 * 
 * def p_cmp_op(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'not':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cmp_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":257
 * #expr: xor_expr ('|' xor_expr)*
 * 
 * def p_bit_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('|',), p_xor_expr)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_bit_expr", 0);

  /* "Cython/Compiler/Parsing.py":258
 * 
 * def p_bit_expr(s):
 *     return p_binop_expr(s, ('|',), p_xor_expr)             # <<<<<<<<<<<<<<
 * 
 * #xor_expr: and_expr ('^' and_expr)*
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(__pyx_v_s, __pyx_tuple__10, __pyx_f_6Cython_8Compiler_7Parsing_p_xor_expr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":257
 * #expr: xor_expr ('|' xor_expr)*
 * 
 * def p_bit_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('|',), p_xor_expr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_bit_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":262
 * #xor_expr: and_expr ('^' and_expr)*
 * 
 * def p_xor_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('^',), p_and_expr)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_xor_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_xor_expr", 0);

  /* "Cython/Compiler/Parsing.py":263
 * 
 * def p_xor_expr(s):
 *     return p_binop_expr(s, ('^',), p_and_expr)             # <<<<<<<<<<<<<<
 * 
 * #and_expr: shift_expr ('&' shift_expr)*
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(__pyx_v_s, __pyx_tuple__12, __pyx_f_6Cython_8Compiler_7Parsing_p_and_expr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":262
 * #xor_expr: and_expr ('^' and_expr)*
 * 
 * def p_xor_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('^',), p_and_expr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_xor_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":267
 * #and_expr: shift_expr ('&' shift_expr)*
 * 
 * def p_and_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('&',), p_shift_expr)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_and_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_and_expr", 0);

  /* "Cython/Compiler/Parsing.py":268
 * 
 * def p_and_expr(s):
 *     return p_binop_expr(s, ('&',), p_shift_expr)             # <<<<<<<<<<<<<<
 * 
 * #shift_expr: arith_expr (('<<'|'>>') arith_expr)*
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(__pyx_v_s, __pyx_tuple__14, __pyx_f_6Cython_8Compiler_7Parsing_p_shift_expr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":267
 * #and_expr: shift_expr ('&' shift_expr)*
 * 
 * def p_and_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('&',), p_shift_expr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_and_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":272
 * #shift_expr: arith_expr (('<<'|'>>') arith_expr)*
 * 
 * def p_shift_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('<<', '>>'), p_arith_expr)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_shift_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_shift_expr", 0);

  /* "Cython/Compiler/Parsing.py":273
 * 
 * def p_shift_expr(s):
 *     return p_binop_expr(s, ('<<', '>>'), p_arith_expr)             # <<<<<<<<<<<<<<
 * 
 * #arith_expr: term (('+'|'-') term)*
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(__pyx_v_s, __pyx_tuple__17, __pyx_f_6Cython_8Compiler_7Parsing_p_arith_expr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":272
 * #shift_expr: arith_expr (('<<'|'>>') arith_expr)*
 * 
 * def p_shift_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('<<', '>>'), p_arith_expr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_shift_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":277
 * #arith_expr: term (('+'|'-') term)*
 * 
 * def p_arith_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('+', '-'), p_term)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_arith_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_arith_expr", 0);

  /* "Cython/Compiler/Parsing.py":278
 * 
 * def p_arith_expr(s):
 *     return p_binop_expr(s, ('+', '-'), p_term)             # <<<<<<<<<<<<<<
 * 
 * #term: factor (('*'|'@'|'/'|'%'|'//') factor)*
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(__pyx_v_s, __pyx_tuple__20, __pyx_f_6Cython_8Compiler_7Parsing_p_term); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":277
 * #arith_expr: term (('+'|'-') term)*
 * 
 * def p_arith_expr(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('+', '-'), p_term)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_arith_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":282
 * #term: factor (('*'|'@'|'/'|'%'|'//') factor)*
 * 
 * def p_term(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('*', '@', '/', '%', '//'), p_factor)
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_term(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_term", 0);

  /* "Cython/Compiler/Parsing.py":283
 * 
 * def p_term(s):
 *     return p_binop_expr(s, ('*', '@', '/', '%', '//'), p_factor)             # <<<<<<<<<<<<<<
 * 
 * #factor: ('+'|'-'|'~'|'&'|typecast|sizeof) factor | power
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr(__pyx_v_s, __pyx_tuple__24, __pyx_f_6Cython_8Compiler_7Parsing_p_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":282
 * #term: factor (('*'|'@'|'/'|'%'|'//') factor)*
 * 
 * def p_term(s):             # <<<<<<<<<<<<<<
 *     return p_binop_expr(s, ('*', '@', '/', '%', '//'), p_factor)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_term", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":287
 * #factor: ('+'|'-'|'~'|'&'|typecast|sizeof) factor | power
 * 
 * def p_factor(s):             # <<<<<<<<<<<<<<
 *     # little indirection for C-ification purposes
 *     return _p_factor(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_factor(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_factor", 0);

  /* "Cython/Compiler/Parsing.py":289
 * def p_factor(s):
 *     # little indirection for C-ification purposes
 *     return _p_factor(s)             # <<<<<<<<<<<<<<
 * 
 * def _p_factor(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing__p_factor(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":287
 * #factor: ('+'|'-'|'~'|'&'|typecast|sizeof) factor | power
 * 
 * def p_factor(s):             # <<<<<<<<<<<<<<
 *     # little indirection for C-ification purposes
 *     return _p_factor(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_factor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":291
 *     return _p_factor(s)
 * 
 * def _p_factor(s):             # <<<<<<<<<<<<<<
 *     sy = s.sy
 *     if sy in ('+', '-', '~'):
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing__p_factor(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_sy = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_RefNannySetupContext("_p_factor", 0);

  /* "Cython/Compiler/Parsing.py":292
 * 
 * def _p_factor(s):
 *     sy = s.sy             # <<<<<<<<<<<<<<
 *     if sy in ('+', '-', '~'):
 *         op = s.sy
 */
  __pyx_t_1 = __pyx_v_s->sy;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_sy = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":293
 * def _p_factor(s):
 *     sy = s.sy
 *     if sy in ('+', '-', '~'):             # <<<<<<<<<<<<<<
 *         op = s.sy
 *         pos = s.position()
 */
  __Pyx_INCREF(__pyx_v_sy);
  __pyx_t_1 = __pyx_v_sy;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__18, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 293, __pyx_L1_error)
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__19, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 293, __pyx_L1_error)
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__25, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 293, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":294
 *     sy = s.sy
 *     if sy in ('+', '-', '~'):
 *         op = s.sy             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
    __pyx_t_1 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_op = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":295
 *     if sy in ('+', '-', '~'):
 *         op = s.sy
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_pos = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":296
 *         op = s.sy
 *         pos = s.position()
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":297
 *         pos = s.position()
 *         s.next()
 *         return ExprNodes.unop_node(pos, op, p_factor(s))             # <<<<<<<<<<<<<<
 *     elif not s.in_python_file:
 *         if sy == '&':
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_unop_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_pos, __pyx_v_op, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_pos, __pyx_v_op, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 297, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_INCREF(__pyx_v_op);
      __Pyx_GIVEREF(__pyx_v_op);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_op);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":293
 * def _p_factor(s):
 *     sy = s.sy
 *     if sy in ('+', '-', '~'):             # <<<<<<<<<<<<<<
 *         op = s.sy
 *         pos = s.position()
 */
  }

  /* "Cython/Compiler/Parsing.py":298
 *         s.next()
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:             # <<<<<<<<<<<<<<
 *         if sy == '&':
 *             pos = s.position()
 */
  __pyx_t_3 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":299
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:
 *         if sy == '&':             # <<<<<<<<<<<<<<
 *             pos = s.position()
 *             s.next()
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__13, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 299, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":300
 *     elif not s.in_python_file:
 *         if sy == '&':
 *             pos = s.position()             # <<<<<<<<<<<<<<
 *             s.next()
 *             arg = p_factor(s)
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_pos = ((PyObject*)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":301
 *         if sy == '&':
 *             pos = s.position()
 *             s.next()             # <<<<<<<<<<<<<<
 *             arg = p_factor(s)
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":302
 *             pos = s.position()
 *             s.next()
 *             arg = p_factor(s)             # <<<<<<<<<<<<<<
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 *         elif sy == "<":
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_arg = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":303
 *             s.next()
 *             arg = p_factor(s)
 *             return ExprNodes.AmpersandNode(pos, operand = arg)             # <<<<<<<<<<<<<<
 *         elif sy == "<":
 *             return p_typecast(s)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AmpersandNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_operand, __pyx_v_arg) < 0) __PYX_ERR(0, 303, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":299
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:
 *         if sy == '&':             # <<<<<<<<<<<<<<
 *             pos = s.position()
 *             s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":304
 *             arg = p_factor(s)
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 *         elif sy == "<":             # <<<<<<<<<<<<<<
 *             return p_typecast(s)
 *         elif sy == 'IDENT' and s.systring == "sizeof":
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__26, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 304, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":305
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 *         elif sy == "<":
 *             return p_typecast(s)             # <<<<<<<<<<<<<<
 *         elif sy == 'IDENT' and s.systring == "sizeof":
 *             return p_sizeof(s)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_typecast(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 305, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":304
 *             arg = p_factor(s)
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 *         elif sy == "<":             # <<<<<<<<<<<<<<
 *             return p_typecast(s)
 *         elif sy == 'IDENT' and s.systring == "sizeof":
 */
    }

    /* "Cython/Compiler/Parsing.py":306
 *         elif sy == "<":
 *             return p_typecast(s)
 *         elif sy == 'IDENT' and s.systring == "sizeof":             # <<<<<<<<<<<<<<
 *             return p_sizeof(s)
 *     return p_power(s)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_sizeof, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_2;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":307
 *             return p_typecast(s)
 *         elif sy == 'IDENT' and s.systring == "sizeof":
 *             return p_sizeof(s)             # <<<<<<<<<<<<<<
 *     return p_power(s)
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_sizeof(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":306
 *         elif sy == "<":
 *             return p_typecast(s)
 *         elif sy == 'IDENT' and s.systring == "sizeof":             # <<<<<<<<<<<<<<
 *             return p_sizeof(s)
 *     return p_power(s)
 */
    }

    /* "Cython/Compiler/Parsing.py":298
 *         s.next()
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:             # <<<<<<<<<<<<<<
 *         if sy == '&':
 *             pos = s.position()
 */
  }

  /* "Cython/Compiler/Parsing.py":308
 *         elif sy == 'IDENT' and s.systring == "sizeof":
 *             return p_sizeof(s)
 *     return p_power(s)             # <<<<<<<<<<<<<<
 * 
 * def p_typecast(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_power(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":291
 *     return _p_factor(s)
 * 
 * def _p_factor(s):             # <<<<<<<<<<<<<<
 *     sy = s.sy
 *     if sy in ('+', '-', '~'):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing._p_factor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_sy);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":310
 *     return p_power(s)
 * 
 * def p_typecast(s):             # <<<<<<<<<<<<<<
 *     # s.sy == "<"
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_typecast(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_base_type = NULL;
  int __pyx_v_is_memslice;
  int __pyx_v_is_template;
  int __pyx_v_is_const;
  PyObject *__pyx_v_declarator = NULL;
  long __pyx_v_typecheck;
  PyObject *__pyx_v_operand = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_typecast", 0);

  /* "Cython/Compiler/Parsing.py":312
 * def p_typecast(s):
 *     # s.sy == "<"
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     base_type = p_c_base_type(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":313
 *     # s.sy == "<"
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     base_type = p_c_base_type(s)
 *     is_memslice = isinstance(base_type, Nodes.MemoryViewSliceTypeNode)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":314
 *     pos = s.position()
 *     s.next()
 *     base_type = p_c_base_type(s)             # <<<<<<<<<<<<<<
 *     is_memslice = isinstance(base_type, Nodes.MemoryViewSliceTypeNode)
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_base_type = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":315
 *     s.next()
 *     base_type = p_c_base_type(s)
 *     is_memslice = isinstance(base_type, Nodes.MemoryViewSliceTypeNode)             # <<<<<<<<<<<<<<
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_MemoryViewSliceTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_base_type, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 315, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_is_memslice = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":316
 *     base_type = p_c_base_type(s)
 *     is_memslice = isinstance(base_type, Nodes.MemoryViewSliceTypeNode)
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)             # <<<<<<<<<<<<<<
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)
 *     if (not is_memslice and not is_template and not is_const
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_TemplatedTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_base_type, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_is_template = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":317
 *     is_memslice = isinstance(base_type, Nodes.MemoryViewSliceTypeNode)
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)             # <<<<<<<<<<<<<<
 *     if (not is_memslice and not is_template and not is_const
 *         and base_type.name is None):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CConstTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_base_type, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_is_const = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":318
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)
 *     if (not is_memslice and not is_template and not is_const             # <<<<<<<<<<<<<<
 *         and base_type.name is None):
 *         s.error("Unknown type")
 */
  __pyx_t_3 = ((!(__pyx_v_is_memslice != 0)) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((!(__pyx_v_is_template != 0)) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }

  /* "Cython/Compiler/Parsing.py":319
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)
 *     if (not is_memslice and not is_template and not is_const
 *         and base_type.name is None):             # <<<<<<<<<<<<<<
 *         s.error("Unknown type")
 *     declarator = p_c_declarator(s, empty = 1)
 */
  __pyx_t_3 = ((!(__pyx_v_is_const != 0)) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_base_type, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;

  /* "Cython/Compiler/Parsing.py":318
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)
 *     if (not is_memslice and not is_template and not is_const             # <<<<<<<<<<<<<<
 *         and base_type.name is None):
 *         s.error("Unknown type")
 */
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":320
 *     if (not is_memslice and not is_template and not is_const
 *         and base_type.name is None):
 *         s.error("Unknown type")             # <<<<<<<<<<<<<<
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":318
 *     is_template = isinstance(base_type, Nodes.TemplatedTypeNode)
 *     is_const = isinstance(base_type, Nodes.CConstTypeNode)
 *     if (not is_memslice and not is_template and not is_const             # <<<<<<<<<<<<<<
 *         and base_type.name is None):
 *         s.error("Unknown type")
 */
  }

  /* "Cython/Compiler/Parsing.py":321
 *         and base_type.name is None):
 *         s.error("Unknown type")
 *     declarator = p_c_declarator(s, empty = 1)             # <<<<<<<<<<<<<<
 *     if s.sy == '?':
 *         s.next()
 */
  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_empty, __pyx_int_1) < 0) __PYX_ERR(0, 321, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_declarator = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":322
 *         s.error("Unknown type")
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':             # <<<<<<<<<<<<<<
 *         s.next()
 *         typecheck = 1
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__28, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 322, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":323
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':
 *         s.next()             # <<<<<<<<<<<<<<
 *         typecheck = 1
 *     else:
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":324
 *     if s.sy == '?':
 *         s.next()
 *         typecheck = 1             # <<<<<<<<<<<<<<
 *     else:
 *         typecheck = 0
 */
    __pyx_v_typecheck = 1;

    /* "Cython/Compiler/Parsing.py":322
 *         s.error("Unknown type")
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':             # <<<<<<<<<<<<<<
 *         s.next()
 *         typecheck = 1
 */
    goto __pyx_L8;
  }

  /* "Cython/Compiler/Parsing.py":326
 *         typecheck = 1
 *     else:
 *         typecheck = 0             # <<<<<<<<<<<<<<
 *     s.expect(">")
 *     operand = p_factor(s)
 */
  /*else*/ {
    __pyx_v_typecheck = 0;
  }
  __pyx_L8:;

  /* "Cython/Compiler/Parsing.py":327
 *     else:
 *         typecheck = 0
 *     s.expect(">")             # <<<<<<<<<<<<<<
 *     operand = p_factor(s)
 *     if is_memslice:
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__29, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 327, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":328
 *         typecheck = 0
 *     s.expect(">")
 *     operand = p_factor(s)             # <<<<<<<<<<<<<<
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,
 */
  __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v_operand = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":329
 *     s.expect(">")
 *     operand = p_factor(s)
 *     if is_memslice:             # <<<<<<<<<<<<<<
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,
 *                                          operand=operand)
 */
  __pyx_t_2 = (__pyx_v_is_memslice != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":330
 *     operand = p_factor(s)
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,             # <<<<<<<<<<<<<<
 *                                          operand=operand)
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_CythonArrayNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_type_node, __pyx_v_base_type) < 0) __PYX_ERR(0, 330, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":331
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,
 *                                          operand=operand)             # <<<<<<<<<<<<<<
 * 
 *     return ExprNodes.TypecastNode(pos,
 */
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_operand, __pyx_v_operand) < 0) __PYX_ERR(0, 330, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":330
 *     operand = p_factor(s)
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,             # <<<<<<<<<<<<<<
 *                                          operand=operand)
 * 
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":329
 *     s.expect(">")
 *     operand = p_factor(s)
 *     if is_memslice:             # <<<<<<<<<<<<<<
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,
 *                                          operand=operand)
 */
  }

  /* "Cython/Compiler/Parsing.py":333
 *                                          operand=operand)
 * 
 *     return ExprNodes.TypecastNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TypecastNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":334
 * 
 *     return ExprNodes.TypecastNode(pos,
 *         base_type = base_type,             # <<<<<<<<<<<<<<
 *         declarator = declarator,
 *         operand = operand,
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 334, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":335
 *     return ExprNodes.TypecastNode(pos,
 *         base_type = base_type,
 *         declarator = declarator,             # <<<<<<<<<<<<<<
 *         operand = operand,
 *         typecheck = typecheck)
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 334, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":336
 *         base_type = base_type,
 *         declarator = declarator,
 *         operand = operand,             # <<<<<<<<<<<<<<
 *         typecheck = typecheck)
 * 
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_operand, __pyx_v_operand) < 0) __PYX_ERR(0, 334, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":337
 *         declarator = declarator,
 *         operand = operand,
 *         typecheck = typecheck)             # <<<<<<<<<<<<<<
 * 
 * def p_sizeof(s):
 */
  __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_typecheck); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_typecheck, __pyx_t_7) < 0) __PYX_ERR(0, 334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":333
 *                                          operand=operand)
 * 
 *     return ExprNodes.TypecastNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":310
 *     return p_power(s)
 * 
 * def p_typecast(s):             # <<<<<<<<<<<<<<
 *     # s.sy == "<"
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_typecast", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":339
 *         typecheck = typecheck)
 * 
 * def p_sizeof(s):             # <<<<<<<<<<<<<<
 *     # s.sy == ident "sizeof"
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_sizeof(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_operand = NULL;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_declarator = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_sizeof", 0);

  /* "Cython/Compiler/Parsing.py":341
 * def p_sizeof(s):
 *     # s.sy == ident "sizeof"
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     s.expect('(')
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":342
 *     # s.sy == ident "sizeof"
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     s.expect('(')
 *     # Here we decide if we are looking at an expression or type
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":343
 *     pos = s.position()
 *     s.next()
 *     s.expect('(')             # <<<<<<<<<<<<<<
 *     # Here we decide if we are looking at an expression or type
 *     # If it is actually a type, but parsable as an expression,
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__30, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 343, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":347
 *     # If it is actually a type, but parsable as an expression,
 *     # we treat it as an expression here.
 *     if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *         operand = p_test(s)
 *         node = ExprNodes.SizeofVarNode(pos, operand = operand)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":348
 *     # we treat it as an expression here.
 *     if looking_at_expr(s):
 *         operand = p_test(s)             # <<<<<<<<<<<<<<
 *         node = ExprNodes.SizeofVarNode(pos, operand = operand)
 *     else:
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_operand = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":349
 *     if looking_at_expr(s):
 *         operand = p_test(s)
 *         node = ExprNodes.SizeofVarNode(pos, operand = operand)             # <<<<<<<<<<<<<<
 *     else:
 *         base_type = p_c_base_type(s)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SizeofVarNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_operand, __pyx_v_operand) < 0) __PYX_ERR(0, 349, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_node = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":347
 *     # If it is actually a type, but parsable as an expression,
 *     # we treat it as an expression here.
 *     if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *         operand = p_test(s)
 *         node = ExprNodes.SizeofVarNode(pos, operand = operand)
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":351
 *         node = ExprNodes.SizeofVarNode(pos, operand = operand)
 *     else:
 *         base_type = p_c_base_type(s)             # <<<<<<<<<<<<<<
 *         declarator = p_c_declarator(s, empty = 1)
 *         node = ExprNodes.SizeofTypeNode(pos,
 */
  /*else*/ {
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_base_type = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":352
 *     else:
 *         base_type = p_c_base_type(s)
 *         declarator = p_c_declarator(s, empty = 1)             # <<<<<<<<<<<<<<
 *         node = ExprNodes.SizeofTypeNode(pos,
 *             base_type = base_type, declarator = declarator)
 */
    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_s));
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_empty, __pyx_int_1) < 0) __PYX_ERR(0, 352, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_declarator = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":353
 *         base_type = p_c_base_type(s)
 *         declarator = p_c_declarator(s, empty = 1)
 *         node = ExprNodes.SizeofTypeNode(pos,             # <<<<<<<<<<<<<<
 *             base_type = base_type, declarator = declarator)
 *     s.expect(')')
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SizeofTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":354
 *         declarator = p_c_declarator(s, empty = 1)
 *         node = ExprNodes.SizeofTypeNode(pos,
 *             base_type = base_type, declarator = declarator)             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     return node
 */
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 354, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 354, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":353
 *         base_type = p_c_base_type(s)
 *         declarator = p_c_declarator(s, empty = 1)
 *         node = ExprNodes.SizeofTypeNode(pos,             # <<<<<<<<<<<<<<
 *             base_type = base_type, declarator = declarator)
 *     s.expect(')')
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_node = __pyx_t_5;
    __pyx_t_5 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":355
 *         node = ExprNodes.SizeofTypeNode(pos,
 *             base_type = base_type, declarator = declarator)
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     return node
 * 
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 355, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":356
 *             base_type = base_type, declarator = declarator)
 *     s.expect(')')
 *     return node             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_node);
  __pyx_r = __pyx_v_node;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":339
 *         typecheck = typecheck)
 * 
 * def p_sizeof(s):             # <<<<<<<<<<<<<<
 *     # s.sy == ident "sizeof"
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_sizeof", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":359
 * 
 * 
 * def p_yield_expression(s):             # <<<<<<<<<<<<<<
 *     # s.sy == "yield"
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  int __pyx_v_is_yield_from;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_yield_expression", 0);

  /* "Cython/Compiler/Parsing.py":361
 * def p_yield_expression(s):
 *     # s.sy == "yield"
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     is_yield_from = False
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":362
 *     # s.sy == "yield"
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     is_yield_from = False
 *     if s.sy == 'from':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":363
 *     pos = s.position()
 *     s.next()
 *     is_yield_from = False             # <<<<<<<<<<<<<<
 *     if s.sy == 'from':
 *         is_yield_from = True
 */
  __pyx_v_is_yield_from = 0;

  /* "Cython/Compiler/Parsing.py":364
 *     s.next()
 *     is_yield_from = False
 *     if s.sy == 'from':             # <<<<<<<<<<<<<<
 *         is_yield_from = True
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":365
 *     is_yield_from = False
 *     if s.sy == 'from':
 *         is_yield_from = True             # <<<<<<<<<<<<<<
 *         s.next()
 *     if s.sy != ')' and s.sy not in statement_terminators:
 */
    __pyx_v_is_yield_from = 1;

    /* "Cython/Compiler/Parsing.py":366
 *     if s.sy == 'from':
 *         is_yield_from = True
 *         s.next()             # <<<<<<<<<<<<<<
 *     if s.sy != ')' and s.sy not in statement_terminators:
 *         # "yield from" does not support implicit tuples, but "yield" does ("yield 1,2")
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":364
 *     s.next()
 *     is_yield_from = False
 *     if s.sy == 'from':             # <<<<<<<<<<<<<<
 *         is_yield_from = True
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":367
 *         is_yield_from = True
 *         s.next()
 *     if s.sy != ')' and s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         # "yield from" does not support implicit tuples, but "yield" does ("yield 1,2")
 *         arg = p_test(s) if is_yield_from else p_testlist(s)
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__31, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 367, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 367, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":369
 *     if s.sy != ')' and s.sy not in statement_terminators:
 *         # "yield from" does not support implicit tuples, but "yield" does ("yield 1,2")
 *         arg = p_test(s) if is_yield_from else p_testlist(s)             # <<<<<<<<<<<<<<
 *     else:
 *         if is_yield_from:
 */
    if ((__pyx_v_is_yield_from != 0)) {
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __pyx_t_5;
      __pyx_t_5 = 0;
    } else {
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":367
 *         is_yield_from = True
 *         s.next()
 *     if s.sy != ')' and s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         # "yield from" does not support implicit tuples, but "yield" does ("yield 1,2")
 *         arg = p_test(s) if is_yield_from else p_testlist(s)
 */
    goto __pyx_L4;
  }

  /* "Cython/Compiler/Parsing.py":371
 *         arg = p_test(s) if is_yield_from else p_testlist(s)
 *     else:
 *         if is_yield_from:             # <<<<<<<<<<<<<<
 *             s.error("'yield from' requires a source argument",
 *                     pos=pos, fatal=False)
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_is_yield_from != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":372
 *     else:
 *         if is_yield_from:
 *             s.error("'yield from' requires a source argument",             # <<<<<<<<<<<<<<
 *                     pos=pos, fatal=False)
 *         arg = None
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);

      /* "Cython/Compiler/Parsing.py":373
 *         if is_yield_from:
 *             s.error("'yield from' requires a source argument",
 *                     pos=pos, fatal=False)             # <<<<<<<<<<<<<<
 *         arg = None
 *     if is_yield_from:
 */
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 373, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 373, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":372
 *     else:
 *         if is_yield_from:
 *             s.error("'yield from' requires a source argument",             # <<<<<<<<<<<<<<
 *                     pos=pos, fatal=False)
 *         arg = None
 */
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__32, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 372, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":371
 *         arg = p_test(s) if is_yield_from else p_testlist(s)
 *     else:
 *         if is_yield_from:             # <<<<<<<<<<<<<<
 *             s.error("'yield from' requires a source argument",
 *                     pos=pos, fatal=False)
 */
    }

    /* "Cython/Compiler/Parsing.py":374
 *             s.error("'yield from' requires a source argument",
 *                     pos=pos, fatal=False)
 *         arg = None             # <<<<<<<<<<<<<<
 *     if is_yield_from:
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_arg = Py_None;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":375
 *                     pos=pos, fatal=False)
 *         arg = None
 *     if is_yield_from:             # <<<<<<<<<<<<<<
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)
 *     else:
 */
  __pyx_t_2 = (__pyx_v_is_yield_from != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":376
 *         arg = None
 *     if is_yield_from:
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)             # <<<<<<<<<<<<<<
 *     else:
 *         return ExprNodes.YieldExprNode(pos, arg=arg)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_YieldFromExprNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_arg, __pyx_v_arg) < 0) __PYX_ERR(0, 376, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":375
 *                     pos=pos, fatal=False)
 *         arg = None
 *     if is_yield_from:             # <<<<<<<<<<<<<<
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":378
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)
 *     else:
 *         return ExprNodes.YieldExprNode(pos, arg=arg)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_YieldExprNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg, __pyx_v_arg) < 0) __PYX_ERR(0, 378, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":359
 * 
 * 
 * def p_yield_expression(s):             # <<<<<<<<<<<<<<
 *     # s.sy == "yield"
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_yield_expression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":381
 * 
 * 
 * def p_yield_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == "yield"
 *     yield_expr = p_yield_expression(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_yield_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_yield_expr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_yield_statement", 0);

  /* "Cython/Compiler/Parsing.py":383
 * def p_yield_statement(s):
 *     # s.sy == "yield"
 *     yield_expr = p_yield_expression(s)             # <<<<<<<<<<<<<<
 *     return Nodes.ExprStatNode(yield_expr.pos, expr=yield_expr)
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_yield_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":384
 *     # s.sy == "yield"
 *     yield_expr = p_yield_expression(s)
 *     return Nodes.ExprStatNode(yield_expr.pos, expr=yield_expr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_yield_expr, __pyx_n_s_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_expr, __pyx_v_yield_expr) < 0) __PYX_ERR(0, 384, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":381
 * 
 * 
 * def p_yield_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == "yield"
 *     yield_expr = p_yield_expression(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_yield_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_yield_expr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":387
 * 
 * 
 * def p_async_statement(s, ctx, decorators):             # <<<<<<<<<<<<<<
 *     # s.sy >> 'async' ...
 *     if s.sy == 'def':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_async_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, PyObject *__pyx_v_decorators) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement __pyx_t_5;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_statement __pyx_t_6;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items __pyx_t_7;
  __Pyx_RefNannySetupContext("p_async_statement", 0);

  /* "Cython/Compiler/Parsing.py":389
 * def p_async_statement(s, ctx, decorators):
 *     # s.sy >> 'async' ...
 *     if s.sy == 'def':             # <<<<<<<<<<<<<<
 *         # 'async def' statements aren't allowed in pxd files
 *         if 'pxd' in ctx.level:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_def, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 389, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":391
 *     if s.sy == 'def':
 *         # 'async def' statements aren't allowed in pxd files
 *         if 'pxd' in ctx.level:             # <<<<<<<<<<<<<<
 *             s.error('def statement not allowed here')
 *         s.level = ctx.level
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_pxd, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 391, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = (__pyx_t_1 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":392
 *         # 'async def' statements aren't allowed in pxd files
 *         if 'pxd' in ctx.level:
 *             s.error('def statement not allowed here')             # <<<<<<<<<<<<<<
 *         s.level = ctx.level
 *         return p_def_statement(s, decorators, is_async_def=True)
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 392, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 392, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":391
 *     if s.sy == 'def':
 *         # 'async def' statements aren't allowed in pxd files
 *         if 'pxd' in ctx.level:             # <<<<<<<<<<<<<<
 *             s.error('def statement not allowed here')
 *         s.level = ctx.level
 */
    }

    /* "Cython/Compiler/Parsing.py":393
 *         if 'pxd' in ctx.level:
 *             s.error('def statement not allowed here')
 *         s.level = ctx.level             # <<<<<<<<<<<<<<
 *         return p_def_statement(s, decorators, is_async_def=True)
 *     elif decorators:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_GOTREF(__pyx_v_s->__pyx_base.level);
    __Pyx_DECREF(__pyx_v_s->__pyx_base.level);
    __pyx_v_s->__pyx_base.level = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":394
 *             s.error('def statement not allowed here')
 *         s.level = ctx.level
 *         return p_def_statement(s, decorators, is_async_def=True)             # <<<<<<<<<<<<<<
 *     elif decorators:
 *         s.error("Decorators can only be followed by functions or classes")
 */
    __Pyx_XDECREF(__pyx_r);
    if (!(likely(PyList_CheckExact(__pyx_v_decorators))||((__pyx_v_decorators) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_decorators)->tp_name), 0))) __PYX_ERR(0, 394, __pyx_L1_error)
    __pyx_t_5.__pyx_n = 2;
    __pyx_t_5.decorators = ((PyObject*)__pyx_v_decorators);
    __pyx_t_5.is_async_def = 1;
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_def_statement(__pyx_v_s, &__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":389
 * def p_async_statement(s, ctx, decorators):
 *     # s.sy >> 'async' ...
 *     if s.sy == 'def':             # <<<<<<<<<<<<<<
 *         # 'async def' statements aren't allowed in pxd files
 *         if 'pxd' in ctx.level:
 */
  }

  /* "Cython/Compiler/Parsing.py":395
 *         s.level = ctx.level
 *         return p_def_statement(s, decorators, is_async_def=True)
 *     elif decorators:             # <<<<<<<<<<<<<<
 *         s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'for':
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_decorators); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 395, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":396
 *         return p_def_statement(s, decorators, is_async_def=True)
 *     elif decorators:
 *         s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *     elif s.sy == 'for':
 *         return p_for_statement(s, is_async=True)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":395
 *         s.level = ctx.level
 *         return p_def_statement(s, decorators, is_async_def=True)
 *     elif decorators:             # <<<<<<<<<<<<<<
 *         s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'for':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":397
 *     elif decorators:
 *         s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *         return p_for_statement(s, is_async=True)
 *     elif s.sy == 'with':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 397, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":398
 *         s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'for':
 *         return p_for_statement(s, is_async=True)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'with':
 *         s.next()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6.__pyx_n = 1;
    __pyx_t_6.is_async = 1;
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_statement(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":397
 *     elif decorators:
 *         s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *         return p_for_statement(s, is_async=True)
 *     elif s.sy == 'with':
 */
  }

  /* "Cython/Compiler/Parsing.py":399
 *     elif s.sy == 'for':
 *         return p_for_statement(s, is_async=True)
 *     elif s.sy == 'with':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_with_items(s, is_async=True)
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_with, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 399, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":400
 *         return p_for_statement(s, is_async=True)
 *     elif s.sy == 'with':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return p_with_items(s, is_async=True)
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 400, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":401
 *     elif s.sy == 'with':
 *         s.next()
 *         return p_with_items(s, is_async=True)             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("expected one of 'def', 'for', 'with' after 'async'")
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.is_async = 1;
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":399
 *     elif s.sy == 'for':
 *         return p_for_statement(s, is_async=True)
 *     elif s.sy == 'with':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_with_items(s, is_async=True)
 */
  }

  /* "Cython/Compiler/Parsing.py":403
 *         return p_with_items(s, is_async=True)
 *     else:
 *         s.error("expected one of 'def', 'for', 'with' after 'async'")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":387
 * 
 * 
 * def p_async_statement(s, ctx, decorators):             # <<<<<<<<<<<<<<
 *     # s.sy >> 'async' ...
 *     if s.sy == 'def':
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_async_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":409
 * #atom_expr: ['await'] atom trailer*
 * 
 * def p_power(s):             # <<<<<<<<<<<<<<
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':
 *         return p_new_expr(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_power(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_await_pos = NULL;
  PyObject *__pyx_v_n1 = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_n2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  __Pyx_RefNannySetupContext("p_power", 0);

  /* "Cython/Compiler/Parsing.py":410
 * 
 * def p_power(s):
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':             # <<<<<<<<<<<<<<
 *         return p_new_expr(s)
 *     await_pos = None
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_new, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 410, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->peek(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":411
 * def p_power(s):
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':
 *         return p_new_expr(s)             # <<<<<<<<<<<<<<
 *     await_pos = None
 *     if s.sy == 'await':
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_new_expr(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":410
 * 
 * def p_power(s):
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':             # <<<<<<<<<<<<<<
 *         return p_new_expr(s)
 *     await_pos = None
 */
  }

  /* "Cython/Compiler/Parsing.py":412
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':
 *         return p_new_expr(s)
 *     await_pos = None             # <<<<<<<<<<<<<<
 *     if s.sy == 'await':
 *         await_pos = s.position()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_await_pos = Py_None;

  /* "Cython/Compiler/Parsing.py":413
 *         return p_new_expr(s)
 *     await_pos = None
 *     if s.sy == 'await':             # <<<<<<<<<<<<<<
 *         await_pos = s.position()
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_await, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 413, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":414
 *     await_pos = None
 *     if s.sy == 'await':
 *         await_pos = s.position()             # <<<<<<<<<<<<<<
 *         s.next()
 *     n1 = p_atom(s)
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF_SET(__pyx_v_await_pos, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":415
 *     if s.sy == 'await':
 *         await_pos = s.position()
 *         s.next()             # <<<<<<<<<<<<<<
 *     n1 = p_atom(s)
 *     while s.sy in ('(', '[', '.'):
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":413
 *         return p_new_expr(s)
 *     await_pos = None
 *     if s.sy == 'await':             # <<<<<<<<<<<<<<
 *         await_pos = s.position()
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":416
 *         await_pos = s.position()
 *         s.next()
 *     n1 = p_atom(s)             # <<<<<<<<<<<<<<
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)
 */
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_atom(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_n1 = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":417
 *         s.next()
 *     n1 = p_atom(s)
 *     while s.sy in ('(', '[', '.'):             # <<<<<<<<<<<<<<
 *         n1 = p_trailer(s, n1)
 *     if await_pos:
 */
  while (1) {
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_4 = __pyx_v_s->sy;
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 417, __pyx_L1_error)
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 417, __pyx_L1_error)
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 417, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_2;
    __pyx_L9_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = (__pyx_t_1 != 0);
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":418
 *     n1 = p_atom(s)
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)             # <<<<<<<<<<<<<<
 *     if await_pos:
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_trailer(__pyx_v_s, __pyx_v_n1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_4);
    __pyx_t_4 = 0;
  }

  /* "Cython/Compiler/Parsing.py":419
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)
 *     if await_pos:             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)
 *     if s.sy == '**':
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_await_pos); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 419, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":420
 *         n1 = p_trailer(s, n1)
 *     if await_pos:
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)             # <<<<<<<<<<<<<<
 *     if s.sy == '**':
 *         pos = s.position()
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AwaitExprNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_await_pos);
    __Pyx_GIVEREF(__pyx_v_await_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_await_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg, __pyx_v_n1) < 0) __PYX_ERR(0, 420, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":419
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)
 *     if await_pos:             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)
 *     if s.sy == '**':
 */
  }

  /* "Cython/Compiler/Parsing.py":421
 *     if await_pos:
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)
 *     if s.sy == '**':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 421, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":422
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)
 *     if s.sy == '**':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         s.next()
 *         n2 = p_factor(s)
 */
    __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 422, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_pos = ((PyObject*)__pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":423
 *     if s.sy == '**':
 *         pos = s.position()
 *         s.next()             # <<<<<<<<<<<<<<
 *         n2 = p_factor(s)
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)
 */
    __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":424
 *         pos = s.position()
 *         s.next()
 *         n2 = p_factor(s)             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)
 *     return n1
 */
    __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_n2 = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":425
 *         s.next()
 *         n2 = p_factor(s)
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)             # <<<<<<<<<<<<<<
 *     return n1
 * 
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_pos, __pyx_kp_u__38, __pyx_v_n1, __pyx_v_n2};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_pos, __pyx_kp_u__38, __pyx_v_n1, __pyx_v_n2};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u__38);
      __Pyx_GIVEREF(__pyx_kp_u__38);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_kp_u__38);
      __Pyx_INCREF(__pyx_v_n1);
      __Pyx_GIVEREF(__pyx_v_n1);
      PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_7, __pyx_v_n1);
      __Pyx_INCREF(__pyx_v_n2);
      __Pyx_GIVEREF(__pyx_v_n2);
      PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_7, __pyx_v_n2);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":421
 *     if await_pos:
 *         n1 = ExprNodes.AwaitExprNode(await_pos, arg=n1)
 *     if s.sy == '**':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":426
 *         n2 = p_factor(s)
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)
 *     return n1             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_n1);
  __pyx_r = __pyx_v_n1;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":409
 * #atom_expr: ['await'] atom trailer*
 * 
 * def p_power(s):             # <<<<<<<<<<<<<<
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':
 *         return p_new_expr(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_power", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_await_pos);
  __Pyx_XDECREF(__pyx_v_n1);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_n2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":429
 * 
 * 
 * def p_new_expr(s):             # <<<<<<<<<<<<<<
 *     # s.systring == 'new'.
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_new_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_cppclass = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_new_expr", 0);

  /* "Cython/Compiler/Parsing.py":431
 * def p_new_expr(s):
 *     # s.systring == 'new'.
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     cppclass = p_c_base_type(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":432
 *     # s.systring == 'new'.
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     cppclass = p_c_base_type(s)
 *     return p_call(s, ExprNodes.NewExprNode(pos, cppclass = cppclass))
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":433
 *     pos = s.position()
 *     s.next()
 *     cppclass = p_c_base_type(s)             # <<<<<<<<<<<<<<
 *     return p_call(s, ExprNodes.NewExprNode(pos, cppclass = cppclass))
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cppclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":434
 *     s.next()
 *     cppclass = p_c_base_type(s)
 *     return p_call(s, ExprNodes.NewExprNode(pos, cppclass = cppclass))             # <<<<<<<<<<<<<<
 * 
 * #trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NewExprNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cppclass, __pyx_v_cppclass) < 0) __PYX_ERR(0, 434, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_call(__pyx_v_s, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":429
 * 
 * 
 * def p_new_expr(s):             # <<<<<<<<<<<<<<
 *     # s.systring == 'new'.
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_new_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_cppclass);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":438
 * #trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
 * 
 * def p_trailer(s, node1):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if s.sy == '(':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_trailer(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_node1) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_trailer", 0);

  /* "Cython/Compiler/Parsing.py":439
 * 
 * def p_trailer(s, node1):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         return p_call(s, node1)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":440
 * def p_trailer(s, node1):
 *     pos = s.position()
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         return p_call(s, node1)
 *     elif s.sy == '[':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 440, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":441
 *     pos = s.position()
 *     if s.sy == '(':
 *         return p_call(s, node1)             # <<<<<<<<<<<<<<
 *     elif s.sy == '[':
 *         return p_index(s, node1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call(__pyx_v_s, __pyx_v_node1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 441, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":440
 * def p_trailer(s, node1):
 *     pos = s.position()
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         return p_call(s, node1)
 *     elif s.sy == '[':
 */
  }

  /* "Cython/Compiler/Parsing.py":442
 *     if s.sy == '(':
 *         return p_call(s, node1)
 *     elif s.sy == '[':             # <<<<<<<<<<<<<<
 *         return p_index(s, node1)
 *     else: # s.sy == '.'
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 442, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":443
 *         return p_call(s, node1)
 *     elif s.sy == '[':
 *         return p_index(s, node1)             # <<<<<<<<<<<<<<
 *     else: # s.sy == '.'
 *         s.next()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_index(__pyx_v_s, __pyx_v_node1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":442
 *     if s.sy == '(':
 *         return p_call(s, node1)
 *     elif s.sy == '[':             # <<<<<<<<<<<<<<
 *         return p_index(s, node1)
 *     else: # s.sy == '.'
 */
  }

  /* "Cython/Compiler/Parsing.py":445
 *         return p_index(s, node1)
 *     else: # s.sy == '.'
 *         s.next()             # <<<<<<<<<<<<<<
 *         name = p_ident(s)
 *         return ExprNodes.AttributeNode(pos,
 */
  /*else*/ {
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":446
 *     else: # s.sy == '.'
 *         s.next()
 *         name = p_ident(s)             # <<<<<<<<<<<<<<
 *         return ExprNodes.AttributeNode(pos,
 *             obj=node1, attribute=name)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":447
 *         s.next()
 *         name = p_ident(s)
 *         return ExprNodes.AttributeNode(pos,             # <<<<<<<<<<<<<<
 *             obj=node1, attribute=name)
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AttributeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":448
 *         name = p_ident(s)
 *         return ExprNodes.AttributeNode(pos,
 *             obj=node1, attribute=name)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_obj, __pyx_v_node1) < 0) __PYX_ERR(0, 448, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_attribute, __pyx_v_name) < 0) __PYX_ERR(0, 448, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":447
 *         s.next()
 *         name = p_ident(s)
 *         return ExprNodes.AttributeNode(pos,             # <<<<<<<<<<<<<<
 *             obj=node1, attribute=name)
 * 
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":438
 * #trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
 * 
 * def p_trailer(s, node1):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if s.sy == '(':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_trailer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":460
 * #             star_expr )
 * 
 * def p_call_parse_args(s, allow_genexp=True):             # <<<<<<<<<<<<<<
 *     # s.sy == '('
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args *__pyx_optional_args) {
  CYTHON_UNUSED PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_positional_args = NULL;
  PyObject *__pyx_v_keyword_args = NULL;
  int __pyx_v_starstar_seen;
  int __pyx_v_last_was_tuple_unpack;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_encoded_name = NULL;
  PyObject *__pyx_v_keyword = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  __Pyx_RefNannySetupContext("p_call_parse_args", 0);
  if (__pyx_optional_args) {
  }

  /* "Cython/Compiler/Parsing.py":462
 * def p_call_parse_args(s, allow_genexp=True):
 *     # s.sy == '('
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     positional_args = []
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":463
 *     # s.sy == '('
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     positional_args = []
 *     keyword_args = []
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":464
 *     pos = s.position()
 *     s.next()
 *     positional_args = []             # <<<<<<<<<<<<<<
 *     keyword_args = []
 *     starstar_seen = False
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_positional_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":465
 *     s.next()
 *     positional_args = []
 *     keyword_args = []             # <<<<<<<<<<<<<<
 *     starstar_seen = False
 *     last_was_tuple_unpack = False
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_keyword_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":466
 *     positional_args = []
 *     keyword_args = []
 *     starstar_seen = False             # <<<<<<<<<<<<<<
 *     last_was_tuple_unpack = False
 *     while s.sy != ')':
 */
  __pyx_v_starstar_seen = 0;

  /* "Cython/Compiler/Parsing.py":467
 *     keyword_args = []
 *     starstar_seen = False
 *     last_was_tuple_unpack = False             # <<<<<<<<<<<<<<
 *     while s.sy != ')':
 *         if s.sy == '*':
 */
  __pyx_v_last_was_tuple_unpack = 0;

  /* "Cython/Compiler/Parsing.py":468
 *     starstar_seen = False
 *     last_was_tuple_unpack = False
 *     while s.sy != ')':             # <<<<<<<<<<<<<<
 *         if s.sy == '*':
 *             if starstar_seen:
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__31, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":469
 *     last_was_tuple_unpack = False
 *     while s.sy != ')':
 *         if s.sy == '*':             # <<<<<<<<<<<<<<
 *             if starstar_seen:
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 469, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":470
 *     while s.sy != ')':
 *         if s.sy == '*':
 *             if starstar_seen:             # <<<<<<<<<<<<<<
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())
 *             s.next()
 */
      __pyx_t_2 = (__pyx_v_starstar_seen != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":471
 *         if s.sy == '*':
 *             if starstar_seen:
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())             # <<<<<<<<<<<<<<
 *             s.next()
 *             positional_args.append(p_test(s))
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pos, __pyx_t_4) < 0) __PYX_ERR(0, 471, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__39, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":470
 *     while s.sy != ')':
 *         if s.sy == '*':
 *             if starstar_seen:             # <<<<<<<<<<<<<<
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())
 *             s.next()
 */
      }

      /* "Cython/Compiler/Parsing.py":472
 *             if starstar_seen:
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())
 *             s.next()             # <<<<<<<<<<<<<<
 *             positional_args.append(p_test(s))
 *             last_was_tuple_unpack = True
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":473
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())
 *             s.next()
 *             positional_args.append(p_test(s))             # <<<<<<<<<<<<<<
 *             last_was_tuple_unpack = True
 *         elif s.sy == '**':
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 473, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 473, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":474
 *             s.next()
 *             positional_args.append(p_test(s))
 *             last_was_tuple_unpack = True             # <<<<<<<<<<<<<<
 *         elif s.sy == '**':
 *             s.next()
 */
      __pyx_v_last_was_tuple_unpack = 1;

      /* "Cython/Compiler/Parsing.py":469
 *     last_was_tuple_unpack = False
 *     while s.sy != ')':
 *         if s.sy == '*':             # <<<<<<<<<<<<<<
 *             if starstar_seen:
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":475
 *             positional_args.append(p_test(s))
 *             last_was_tuple_unpack = True
 *         elif s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.next()
 *             keyword_args.append(p_test(s))
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 475, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":476
 *             last_was_tuple_unpack = True
 *         elif s.sy == '**':
 *             s.next()             # <<<<<<<<<<<<<<
 *             keyword_args.append(p_test(s))
 *             starstar_seen = True
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 476, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":477
 *         elif s.sy == '**':
 *             s.next()
 *             keyword_args.append(p_test(s))             # <<<<<<<<<<<<<<
 *             starstar_seen = True
 *         else:
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 477, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_keyword_args, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 477, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":478
 *             s.next()
 *             keyword_args.append(p_test(s))
 *             starstar_seen = True             # <<<<<<<<<<<<<<
 *         else:
 *             arg = p_test(s)
 */
      __pyx_v_starstar_seen = 1;

      /* "Cython/Compiler/Parsing.py":475
 *             positional_args.append(p_test(s))
 *             last_was_tuple_unpack = True
 *         elif s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.next()
 *             keyword_args.append(p_test(s))
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":480
 *             starstar_seen = True
 *         else:
 *             arg = p_test(s)             # <<<<<<<<<<<<<<
 *             if s.sy == '=':
 *                 s.next()
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":481
 *         else:
 *             arg = p_test(s)
 *             if s.sy == '=':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 if not arg.is_name:
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 481, __pyx_L1_error)
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":482
 *             arg = p_test(s)
 *             if s.sy == '=':
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",
 */
        __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 482, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":483
 *             if s.sy == '=':
 *                 s.next()
 *                 if not arg.is_name:             # <<<<<<<<<<<<<<
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_is_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 483, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 483, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = ((!__pyx_t_2) != 0);
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":484
 *                 s.next()
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)
 */
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 484, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);

          /* "Cython/Compiler/Parsing.py":485
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)             # <<<<<<<<<<<<<<
 *                 encoded_name = s.context.intern_ustring(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(
 */
          __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pos, __pyx_t_1) < 0) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":484
 *                 s.next()
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)
 */
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__41, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":483
 *             if s.sy == '=':
 *                 s.next()
 *                 if not arg.is_name:             # <<<<<<<<<<<<<<
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)
 */
        }

        /* "Cython/Compiler/Parsing.py":486
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)             # <<<<<<<<<<<<<<
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 486, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 486, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        if (!__pyx_t_7) {
          __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_4};
            __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_4};
            __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 486, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF_SET(__pyx_v_encoded_name, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":487
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 487, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);

        /* "Cython/Compiler/Parsing.py":488
 *                 encoded_name = s.context.intern_ustring(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *                 keyword_args.append((keyword, arg))
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);

        /* "Cython/Compiler/Parsing.py":487
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 */
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 487, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":488
 *                 encoded_name = s.context.intern_ustring(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *                 keyword_args.append((keyword, arg))
 */
        __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, __pyx_v_encoded_name) < 0) __PYX_ERR(0, 488, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":487
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 */
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 487, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF_SET(__pyx_v_keyword, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":489
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)             # <<<<<<<<<<<<<<
 *                 keyword_args.append((keyword, arg))
 *             else:
 */
        __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 489, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":490
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 *                 keyword_args.append((keyword, arg))             # <<<<<<<<<<<<<<
 *             else:
 *                 if keyword_args:
 */
        __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 490, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_v_keyword);
        __Pyx_GIVEREF(__pyx_v_keyword);
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_keyword);
        __Pyx_INCREF(__pyx_v_arg);
        __Pyx_GIVEREF(__pyx_v_arg);
        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_arg);
        __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_keyword_args, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 490, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":481
 *         else:
 *             arg = p_test(s)
 *             if s.sy == '=':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 if not arg.is_name:
 */
        goto __pyx_L7;
      }

      /* "Cython/Compiler/Parsing.py":492
 *                 keyword_args.append((keyword, arg))
 *             else:
 *                 if keyword_args:             # <<<<<<<<<<<<<<
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)
 *                 if positional_args and not last_was_tuple_unpack:
 */
      /*else*/ {
        __pyx_t_6 = (__pyx_v_keyword_args != Py_None) && (PyList_GET_SIZE(__pyx_v_keyword_args) != 0);
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":493
 *             else:
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)             # <<<<<<<<<<<<<<
 *                 if positional_args and not last_was_tuple_unpack:
 *                     positional_args[-1].append(arg)
 */
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 493, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 493, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pos, __pyx_t_8) < 0) __PYX_ERR(0, 493, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__42, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 493, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":492
 *                 keyword_args.append((keyword, arg))
 *             else:
 *                 if keyword_args:             # <<<<<<<<<<<<<<
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)
 *                 if positional_args and not last_was_tuple_unpack:
 */
        }

        /* "Cython/Compiler/Parsing.py":494
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)
 *                 if positional_args and not last_was_tuple_unpack:             # <<<<<<<<<<<<<<
 *                     positional_args[-1].append(arg)
 *                 else:
 */
        __pyx_t_2 = (__pyx_v_positional_args != Py_None) && (PyList_GET_SIZE(__pyx_v_positional_args) != 0);
        if (__pyx_t_2) {
        } else {
          __pyx_t_6 = __pyx_t_2;
          goto __pyx_L11_bool_binop_done;
        }
        __pyx_t_2 = ((!(__pyx_v_last_was_tuple_unpack != 0)) != 0);
        __pyx_t_6 = __pyx_t_2;
        __pyx_L11_bool_binop_done:;
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":495
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)
 *                 if positional_args and not last_was_tuple_unpack:
 *                     positional_args[-1].append(arg)             # <<<<<<<<<<<<<<
 *                 else:
 *                     positional_args.append([arg])
 */
          __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_positional_args, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 495, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_v_arg); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 495, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":494
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)
 *                 if positional_args and not last_was_tuple_unpack:             # <<<<<<<<<<<<<<
 *                     positional_args[-1].append(arg)
 *                 else:
 */
          goto __pyx_L10;
        }

        /* "Cython/Compiler/Parsing.py":497
 *                     positional_args[-1].append(arg)
 *                 else:
 *                     positional_args.append([arg])             # <<<<<<<<<<<<<<
 *                 last_was_tuple_unpack = False
 *         if s.sy != ',':
 */
        /*else*/ {
          __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_INCREF(__pyx_v_arg);
          __Pyx_GIVEREF(__pyx_v_arg);
          PyList_SET_ITEM(__pyx_t_8, 0, __pyx_v_arg);
          __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_t_8); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 497, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_L10:;

        /* "Cython/Compiler/Parsing.py":498
 *                 else:
 *                     positional_args.append([arg])
 *                 last_was_tuple_unpack = False             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
        __pyx_v_last_was_tuple_unpack = 0;
      }
      __pyx_L7:;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":499
 *                     positional_args.append([arg])
 *                 last_was_tuple_unpack = False
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 499, __pyx_L1_error)
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":500
 *                 last_was_tuple_unpack = False
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 * 
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":499
 *                     positional_args.append([arg])
 *                 last_was_tuple_unpack = False
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":501
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 * 
 *     if s.sy == 'for':
 */
    __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":503
 *         s.next()
 * 
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         if not keyword_args and not last_was_tuple_unpack:
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:
 */
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 503, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":504
 * 
 *     if s.sy == 'for':
 *         if not keyword_args and not last_was_tuple_unpack:             # <<<<<<<<<<<<<<
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]
 */
    __pyx_t_2 = (__pyx_v_keyword_args != Py_None) && (PyList_GET_SIZE(__pyx_v_keyword_args) != 0);
    __pyx_t_9 = ((!__pyx_t_2) != 0);
    if (__pyx_t_9) {
    } else {
      __pyx_t_6 = __pyx_t_9;
      goto __pyx_L16_bool_binop_done;
    }
    __pyx_t_9 = ((!(__pyx_v_last_was_tuple_unpack != 0)) != 0);
    __pyx_t_6 = __pyx_t_9;
    __pyx_L16_bool_binop_done:;
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":505
 *     if s.sy == 'for':
 *         if not keyword_args and not last_was_tuple_unpack:
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:             # <<<<<<<<<<<<<<
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]
 *     s.expect(')')
 */
      __pyx_t_10 = PyList_GET_SIZE(__pyx_v_positional_args); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 505, __pyx_L1_error)
      __pyx_t_9 = ((__pyx_t_10 == 1) != 0);
      if (__pyx_t_9) {
      } else {
        __pyx_t_6 = __pyx_t_9;
        goto __pyx_L19_bool_binop_done;
      }
      __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_positional_args, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 505, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_9 = ((__pyx_t_10 == 1) != 0);
      __pyx_t_6 = __pyx_t_9;
      __pyx_L19_bool_binop_done:;
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":506
 *         if not keyword_args and not last_was_tuple_unpack:
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     return positional_args or [[]], keyword_args
 */
        __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_positional_args, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_genexp(__pyx_v_s, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_8);
        PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
        __pyx_t_8 = 0;
        __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_3);
        PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_3);
        __pyx_t_3 = 0;
        __Pyx_DECREF_SET(__pyx_v_positional_args, ((PyObject*)__pyx_t_8));
        __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":505
 *     if s.sy == 'for':
 *         if not keyword_args and not last_was_tuple_unpack:
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:             # <<<<<<<<<<<<<<
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]
 *     s.expect(')')
 */
      }

      /* "Cython/Compiler/Parsing.py":504
 * 
 *     if s.sy == 'for':
 *         if not keyword_args and not last_was_tuple_unpack:             # <<<<<<<<<<<<<<
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]
 */
    }

    /* "Cython/Compiler/Parsing.py":503
 *         s.next()
 * 
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         if not keyword_args and not last_was_tuple_unpack:
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:
 */
  }

  /* "Cython/Compiler/Parsing.py":507
 *             if len(positional_args) == 1 and len(positional_args[0]) == 1:
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     return positional_args or [[]], keyword_args
 * 
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_6 == -2)) __PYX_ERR(0, 507, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":508
 *                 positional_args = [[p_genexp(s, positional_args[0][0])]]
 *     s.expect(')')
 *     return positional_args or [[]], keyword_args             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_positional_args); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 508, __pyx_L1_error)
  if (!__pyx_t_6) {
  } else {
    __Pyx_INCREF(__pyx_v_positional_args);
    __pyx_t_8 = __pyx_v_positional_args;
    goto __pyx_L21_bool_binop_done;
  }
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_8 = __pyx_t_4;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_L21_bool_binop_done:;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8);
  __Pyx_INCREF(__pyx_v_keyword_args);
  __Pyx_GIVEREF(__pyx_v_keyword_args);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_keyword_args);
  __pyx_t_8 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":460
 * #             star_expr )
 * 
 * def p_call_parse_args(s, allow_genexp=True):             # <<<<<<<<<<<<<<
 *     # s.sy == '('
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_call_parse_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_positional_args);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_encoded_name);
  __Pyx_XDECREF(__pyx_v_keyword);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":511
 * 
 * 
 * def p_call_build_packed_args(pos, positional_args, keyword_args):             # <<<<<<<<<<<<<<
 *     keyword_dict = None
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args(PyObject *__pyx_v_pos, PyObject *__pyx_v_positional_args, PyObject *__pyx_v_keyword_args) {
  PyObject *__pyx_v_keyword_dict = NULL;
  PyObject *__pyx_v_subtuples = NULL;
  PyObject *__pyx_v_arg_tuple = NULL;
  PyObject *__pyx_v_kwargs = NULL;
  PyObject *__pyx_v_dict_items = NULL;
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  int __pyx_t_14;
  __Pyx_RefNannySetupContext("p_call_build_packed_args", 0);

  /* "Cython/Compiler/Parsing.py":512
 * 
 * def p_call_build_packed_args(pos, positional_args, keyword_args):
 *     keyword_dict = None             # <<<<<<<<<<<<<<
 * 
 *     subtuples = [
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_keyword_dict = Py_None;

  /* "Cython/Compiler/Parsing.py":514
 *     keyword_dict = None
 * 
 *     subtuples = [             # <<<<<<<<<<<<<<
 *         ExprNodes.TupleNode(pos, args=arg) if isinstance(arg, list) else ExprNodes.AsTupleNode(pos, arg=arg)
 *         for arg in positional_args
 */
  { /* enter inner scope */
    PyObject *__pyx_7genexpr__pyx_v_arg = NULL;
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 514, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":516
 *     subtuples = [
 *         ExprNodes.TupleNode(pos, args=arg) if isinstance(arg, list) else ExprNodes.AsTupleNode(pos, arg=arg)
 *         for arg in positional_args             # <<<<<<<<<<<<<<
 *     ]
 *     # TODO: implement a faster way to join tuples than creating each one and adding them
 */
    if (likely(PyList_CheckExact(__pyx_v_positional_args)) || PyTuple_CheckExact(__pyx_v_positional_args)) {
      __pyx_t_2 = __pyx_v_positional_args; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_positional_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 516, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 516, __pyx_L5_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 516, __pyx_L5_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 516, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 516, __pyx_L5_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 516, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_4(__pyx_t_2);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 516, __pyx_L5_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_arg, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":515
 * 
 *     subtuples = [
 *         ExprNodes.TupleNode(pos, args=arg) if isinstance(arg, list) else ExprNodes.AsTupleNode(pos, arg=arg)             # <<<<<<<<<<<<<<
 *         for arg in positional_args
 *     ]
 */
      __pyx_t_6 = PyList_Check(__pyx_7genexpr__pyx_v_arg); 
      if ((__pyx_t_6 != 0)) {
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
        __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_args, __pyx_7genexpr__pyx_v_arg) < 0) __PYX_ERR(0, 515, __pyx_L5_error)
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_5 = __pyx_t_10;
        __pyx_t_10 = 0;
      } else {
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AsTupleNode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_pos);
        __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_arg, __pyx_7genexpr__pyx_v_arg) < 0) __PYX_ERR(0, 515, __pyx_L5_error)
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_5 = __pyx_t_7;
        __pyx_t_7 = 0;
      }
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 514, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":516
 *     subtuples = [
 *         ExprNodes.TupleNode(pos, args=arg) if isinstance(arg, list) else ExprNodes.AsTupleNode(pos, arg=arg)
 *         for arg in positional_args             # <<<<<<<<<<<<<<
 *     ]
 *     # TODO: implement a faster way to join tuples than creating each one and adding them
 */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_7genexpr__pyx_v_arg);
    goto __pyx_L8_exit_scope;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_7genexpr__pyx_v_arg);
    goto __pyx_L1_error;
    __pyx_L8_exit_scope:;
  } /* exit inner scope */
  __pyx_v_subtuples = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":519
 *     ]
 *     # TODO: implement a faster way to join tuples than creating each one and adding them
 *     arg_tuple = reduce(partial(ExprNodes.binop_node, pos, '+'), subtuples)             # <<<<<<<<<<<<<<
 * 
 *     if keyword_args:
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_partial);
  __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_partial; __pyx_t_8 = NULL;
  __pyx_t_11 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_11 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_5, __pyx_v_pos, __pyx_kp_u__18};
    __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_5, __pyx_v_pos, __pyx_kp_u__18};
    __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  {
    __pyx_t_9 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__pyx_t_8) {
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_11, __pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_11, __pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u__18);
    __Pyx_GIVEREF(__pyx_kp_u__18);
    PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_11, __pyx_kp_u__18);
    __pyx_t_5 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_reduce);
  __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_reduce; __pyx_t_9 = NULL;
  __pyx_t_11 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_11 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_2, __pyx_v_subtuples};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_2, __pyx_v_subtuples};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_9) {
      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_11, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_subtuples);
    __Pyx_GIVEREF(__pyx_v_subtuples);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_11, __pyx_v_subtuples);
    __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_arg_tuple = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":521
 *     arg_tuple = reduce(partial(ExprNodes.binop_node, pos, '+'), subtuples)
 * 
 *     if keyword_args:             # <<<<<<<<<<<<<<
 *         kwargs = []
 *         dict_items = []
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_keyword_args); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 521, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":522
 * 
 *     if keyword_args:
 *         kwargs = []             # <<<<<<<<<<<<<<
 *         dict_items = []
 *         for item in keyword_args:
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_kwargs = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":523
 *     if keyword_args:
 *         kwargs = []
 *         dict_items = []             # <<<<<<<<<<<<<<
 *         for item in keyword_args:
 *             if isinstance(item, tuple):
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_dict_items = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":524
 *         kwargs = []
 *         dict_items = []
 *         for item in keyword_args:             # <<<<<<<<<<<<<<
 *             if isinstance(item, tuple):
 *                 key, value = item
 */
    if (likely(PyList_CheckExact(__pyx_v_keyword_args)) || PyTuple_CheckExact(__pyx_v_keyword_args)) {
      __pyx_t_1 = __pyx_v_keyword_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 524, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 524, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_7); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 524, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_7); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 524, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_4(__pyx_t_1);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 524, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":525
 *         dict_items = []
 *         for item in keyword_args:
 *             if isinstance(item, tuple):             # <<<<<<<<<<<<<<
 *                 key, value = item
 *                 dict_items.append(ExprNodes.DictItemNode(pos=key.pos, key=key, value=value))
 */
      __pyx_t_6 = PyTuple_Check(__pyx_v_item); 
      __pyx_t_12 = (__pyx_t_6 != 0);
      if (__pyx_t_12) {

        /* "Cython/Compiler/Parsing.py":526
 *         for item in keyword_args:
 *             if isinstance(item, tuple):
 *                 key, value = item             # <<<<<<<<<<<<<<
 *                 dict_items.append(ExprNodes.DictItemNode(pos=key.pos, key=key, value=value))
 *             elif item.is_dict_literal:
 */
        if ((likely(PyTuple_CheckExact(__pyx_v_item))) || (PyList_CheckExact(__pyx_v_item))) {
          PyObject* sequence = __pyx_v_item;
          #if !CYTHON_COMPILING_IN_PYPY
          Py_ssize_t size = Py_SIZE(sequence);
          #else
          Py_ssize_t size = PySequence_Size(sequence);
          #endif
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 526, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_5);
          #else
          __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 526, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 526, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          Py_ssize_t index = -1;
          __pyx_t_2 = PyObject_GetIter(__pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 526, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
          index = 0; __pyx_t_7 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_7)) goto __pyx_L13_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_7);
          index = 1; __pyx_t_5 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_5)) goto __pyx_L13_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_5);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 526, __pyx_L1_error)
          __pyx_t_13 = NULL;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L14_unpacking_done;
          __pyx_L13_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_13 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 526, __pyx_L1_error)
          __pyx_L14_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_7);
        __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":527
 *             if isinstance(item, tuple):
 *                 key, value = item
 *                 dict_items.append(ExprNodes.DictItemNode(pos=key.pos, key=key, value=value))             # <<<<<<<<<<<<<<
 *             elif item.is_dict_literal:
 *                 # unpack "**{a:b}" directly
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 527, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 527, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 527, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_pos, __pyx_t_2) < 0) __PYX_ERR(0, 527, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_key, __pyx_v_key) < 0) __PYX_ERR(0, 527, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 527, __pyx_L1_error)
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 527, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_dict_items, __pyx_t_2); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 527, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":525
 *         dict_items = []
 *         for item in keyword_args:
 *             if isinstance(item, tuple):             # <<<<<<<<<<<<<<
 *                 key, value = item
 *                 dict_items.append(ExprNodes.DictItemNode(pos=key.pos, key=key, value=value))
 */
        goto __pyx_L12;
      }

      /* "Cython/Compiler/Parsing.py":528
 *                 key, value = item
 *                 dict_items.append(ExprNodes.DictItemNode(pos=key.pos, key=key, value=value))
 *             elif item.is_dict_literal:             # <<<<<<<<<<<<<<
 *                 # unpack "**{a:b}" directly
 *                 dict_items.extend(item.key_value_pairs)
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_is_dict_literal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 528, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 528, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_12) {

        /* "Cython/Compiler/Parsing.py":530
 *             elif item.is_dict_literal:
 *                 # unpack "**{a:b}" directly
 *                 dict_items.extend(item.key_value_pairs)             # <<<<<<<<<<<<<<
 *             else:
 *                 if dict_items:
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_key_value_pairs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 530, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_14 = __Pyx_PyList_Extend(__pyx_v_dict_items, __pyx_t_2); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 530, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":528
 *                 key, value = item
 *                 dict_items.append(ExprNodes.DictItemNode(pos=key.pos, key=key, value=value))
 *             elif item.is_dict_literal:             # <<<<<<<<<<<<<<
 *                 # unpack "**{a:b}" directly
 *                 dict_items.extend(item.key_value_pairs)
 */
        goto __pyx_L12;
      }

      /* "Cython/Compiler/Parsing.py":532
 *                 dict_items.extend(item.key_value_pairs)
 *             else:
 *                 if dict_items:             # <<<<<<<<<<<<<<
 *                     kwargs.append(ExprNodes.DictNode(
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 */
      /*else*/ {
        __pyx_t_12 = (__pyx_v_dict_items != Py_None) && (PyList_GET_SIZE(__pyx_v_dict_items) != 0);
        if (__pyx_t_12) {

          /* "Cython/Compiler/Parsing.py":533
 *             else:
 *                 if dict_items:
 *                     kwargs.append(ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 *                     dict_items = []
 */
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 533, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);

          /* "Cython/Compiler/Parsing.py":534
 *                 if dict_items:
 *                     kwargs.append(ExprNodes.DictNode(
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))             # <<<<<<<<<<<<<<
 *                     dict_items = []
 *                 kwargs.append(item)
 */
          __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_dict_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "Cython/Compiler/Parsing.py":533
 *             else:
 *                 if dict_items:
 *                     kwargs.append(ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 *                     dict_items = []
 */
          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 533, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "Cython/Compiler/Parsing.py":534
 *                 if dict_items:
 *                     kwargs.append(ExprNodes.DictNode(
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))             # <<<<<<<<<<<<<<
 *                     dict_items = []
 *                 kwargs.append(item)
 */
          __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key_value_pairs, __pyx_v_dict_items) < 0) __PYX_ERR(0, 534, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_reject_duplicates, Py_True) < 0) __PYX_ERR(0, 534, __pyx_L1_error)

          /* "Cython/Compiler/Parsing.py":533
 *             else:
 *                 if dict_items:
 *                     kwargs.append(ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 *                     dict_items = []
 */
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 533, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_kwargs, __pyx_t_9); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 533, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "Cython/Compiler/Parsing.py":535
 *                     kwargs.append(ExprNodes.DictNode(
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 *                     dict_items = []             # <<<<<<<<<<<<<<
 *                 kwargs.append(item)
 * 
 */
          __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 535, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF_SET(__pyx_v_dict_items, ((PyObject*)__pyx_t_9));
          __pyx_t_9 = 0;

          /* "Cython/Compiler/Parsing.py":532
 *                 dict_items.extend(item.key_value_pairs)
 *             else:
 *                 if dict_items:             # <<<<<<<<<<<<<<
 *                     kwargs.append(ExprNodes.DictNode(
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 */
        }

        /* "Cython/Compiler/Parsing.py":536
 *                         dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 *                     dict_items = []
 *                 kwargs.append(item)             # <<<<<<<<<<<<<<
 * 
 *         if dict_items:
 */
        __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_kwargs, __pyx_v_item); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 536, __pyx_L1_error)
      }
      __pyx_L12:;

      /* "Cython/Compiler/Parsing.py":524
 *         kwargs = []
 *         dict_items = []
 *         for item in keyword_args:             # <<<<<<<<<<<<<<
 *             if isinstance(item, tuple):
 *                 key, value = item
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":538
 *                 kwargs.append(item)
 * 
 *         if dict_items:             # <<<<<<<<<<<<<<
 *             kwargs.append(ExprNodes.DictNode(
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 */
    __pyx_t_12 = (__pyx_v_dict_items != Py_None) && (PyList_GET_SIZE(__pyx_v_dict_items) != 0);
    if (__pyx_t_12) {

      /* "Cython/Compiler/Parsing.py":539
 * 
 *         if dict_items:
 *             kwargs.append(ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 * 
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);

      /* "Cython/Compiler/Parsing.py":540
 *         if dict_items:
 *             kwargs.append(ExprNodes.DictNode(
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))             # <<<<<<<<<<<<<<
 * 
 *         if kwargs:
 */
      __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_dict_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 540, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":539
 * 
 *         if dict_items:
 *             kwargs.append(ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 * 
 */
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":540
 *         if dict_items:
 *             kwargs.append(ExprNodes.DictNode(
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))             # <<<<<<<<<<<<<<
 * 
 *         if kwargs:
 */
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key_value_pairs, __pyx_v_dict_items) < 0) __PYX_ERR(0, 540, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_reject_duplicates, Py_True) < 0) __PYX_ERR(0, 540, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":539
 * 
 *         if dict_items:
 *             kwargs.append(ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 * 
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_kwargs, __pyx_t_7); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":538
 *                 kwargs.append(item)
 * 
 *         if dict_items:             # <<<<<<<<<<<<<<
 *             kwargs.append(ExprNodes.DictNode(
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 */
    }

    /* "Cython/Compiler/Parsing.py":542
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 * 
 *         if kwargs:             # <<<<<<<<<<<<<<
 *             if len(kwargs) == 1 and kwargs[0].is_dict_literal:
 *                 # only simple keyword arguments found -> one dict
 */
    __pyx_t_12 = (__pyx_v_kwargs != Py_None) && (PyList_GET_SIZE(__pyx_v_kwargs) != 0);
    if (__pyx_t_12) {

      /* "Cython/Compiler/Parsing.py":543
 * 
 *         if kwargs:
 *             if len(kwargs) == 1 and kwargs[0].is_dict_literal:             # <<<<<<<<<<<<<<
 *                 # only simple keyword arguments found -> one dict
 *                 keyword_dict = kwargs[0]
 */
      __pyx_t_3 = PyList_GET_SIZE(__pyx_v_kwargs); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 543, __pyx_L1_error)
      __pyx_t_6 = ((__pyx_t_3 == 1) != 0);
      if (__pyx_t_6) {
      } else {
        __pyx_t_12 = __pyx_t_6;
        goto __pyx_L19_bool_binop_done;
      }
      __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_kwargs, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 543, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_dict_literal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 543, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 543, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_12 = __pyx_t_6;
      __pyx_L19_bool_binop_done:;
      if (__pyx_t_12) {

        /* "Cython/Compiler/Parsing.py":545
 *             if len(kwargs) == 1 and kwargs[0].is_dict_literal:
 *                 # only simple keyword arguments found -> one dict
 *                 keyword_dict = kwargs[0]             # <<<<<<<<<<<<<<
 *             else:
 *                 # at least one **kwargs
 */
        __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_kwargs, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 545, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF_SET(__pyx_v_keyword_dict, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":543
 * 
 *         if kwargs:
 *             if len(kwargs) == 1 and kwargs[0].is_dict_literal:             # <<<<<<<<<<<<<<
 *                 # only simple keyword arguments found -> one dict
 *                 keyword_dict = kwargs[0]
 */
        goto __pyx_L18;
      }

      /* "Cython/Compiler/Parsing.py":548
 *             else:
 *                 # at least one **kwargs
 *                 keyword_dict = ExprNodes.MergedDictNode(pos, keyword_args=kwargs)             # <<<<<<<<<<<<<<
 * 
 *     return arg_tuple, keyword_dict
 */
      /*else*/ {
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_MergedDictNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 548, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 548, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
        __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 548, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_keyword_args, __pyx_v_kwargs) < 0) __PYX_ERR(0, 548, __pyx_L1_error)
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 548, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF_SET(__pyx_v_keyword_dict, __pyx_t_1);
        __pyx_t_1 = 0;
      }
      __pyx_L18:;

      /* "Cython/Compiler/Parsing.py":542
 *                 dict_items[0].pos, key_value_pairs=dict_items, reject_duplicates=True))
 * 
 *         if kwargs:             # <<<<<<<<<<<<<<
 *             if len(kwargs) == 1 and kwargs[0].is_dict_literal:
 *                 # only simple keyword arguments found -> one dict
 */
    }

    /* "Cython/Compiler/Parsing.py":521
 *     arg_tuple = reduce(partial(ExprNodes.binop_node, pos, '+'), subtuples)
 * 
 *     if keyword_args:             # <<<<<<<<<<<<<<
 *         kwargs = []
 *         dict_items = []
 */
  }

  /* "Cython/Compiler/Parsing.py":550
 *                 keyword_dict = ExprNodes.MergedDictNode(pos, keyword_args=kwargs)
 * 
 *     return arg_tuple, keyword_dict             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_arg_tuple);
  __Pyx_GIVEREF(__pyx_v_arg_tuple);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_arg_tuple);
  __Pyx_INCREF(__pyx_v_keyword_dict);
  __Pyx_GIVEREF(__pyx_v_keyword_dict);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_keyword_dict);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":511
 * 
 * 
 * def p_call_build_packed_args(pos, positional_args, keyword_args):             # <<<<<<<<<<<<<<
 *     keyword_dict = None
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_call_build_packed_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_keyword_dict);
  __Pyx_XDECREF(__pyx_v_subtuples);
  __Pyx_XDECREF(__pyx_v_arg_tuple);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XDECREF(__pyx_v_dict_items);
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":553
 * 
 * 
 * def p_call(s, function):             # <<<<<<<<<<<<<<
 *     # s.sy == '('
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_call(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_function) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_positional_args = NULL;
  PyObject *__pyx_v_keyword_args = NULL;
  PyObject *__pyx_v_arg_tuple = NULL;
  PyObject *__pyx_v_keyword_dict = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  __Pyx_RefNannySetupContext("p_call", 0);

  /* "Cython/Compiler/Parsing.py":555
 * def p_call(s, function):
 *     # s.sy == '('
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     positional_args, keyword_args = p_call_parse_args(s)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":556
 *     # s.sy == '('
 *     pos = s.position()
 *     positional_args, keyword_args = p_call_parse_args(s)             # <<<<<<<<<<<<<<
 * 
 *     if not keyword_args and len(positional_args) == 1 and isinstance(positional_args[0], list):
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 556, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 556, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 556, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 556, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(0, 556, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 556, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_positional_args = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_keyword_args = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":558
 *     positional_args, keyword_args = p_call_parse_args(s)
 * 
 *     if not keyword_args and len(positional_args) == 1 and isinstance(positional_args[0], list):             # <<<<<<<<<<<<<<
 *         return ExprNodes.SimpleCallNode(pos, function=function, args=positional_args[0])
 *     else:
 */
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_keyword_args); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 558, __pyx_L1_error)
  __pyx_t_8 = ((!__pyx_t_7) != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_6 = __pyx_t_8;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_9 = PyObject_Length(__pyx_v_positional_args); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 558, __pyx_L1_error)
  __pyx_t_8 = ((__pyx_t_9 == 1) != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_6 = __pyx_t_8;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_positional_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyList_Check(__pyx_t_1); 
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_6 = __pyx_t_7;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":559
 * 
 *     if not keyword_args and len(positional_args) == 1 and isinstance(positional_args[0], list):
 *         return ExprNodes.SimpleCallNode(pos, function=function, args=positional_args[0])             # <<<<<<<<<<<<<<
 *     else:
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SimpleCallNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_function, __pyx_v_function) < 0) __PYX_ERR(0, 559, __pyx_L1_error)
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_positional_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_args, __pyx_t_4) < 0) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":558
 *     positional_args, keyword_args = p_call_parse_args(s)
 * 
 *     if not keyword_args and len(positional_args) == 1 and isinstance(positional_args[0], list):             # <<<<<<<<<<<<<<
 *         return ExprNodes.SimpleCallNode(pos, function=function, args=positional_args[0])
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":561
 *         return ExprNodes.SimpleCallNode(pos, function=function, args=positional_args[0])
 *     else:
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)             # <<<<<<<<<<<<<<
 *         return ExprNodes.GeneralCallNode(
 *             pos, function=function, positional_args=arg_tuple, keyword_args=keyword_dict)
 */
  /*else*/ {
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args(__pyx_v_pos, __pyx_v_positional_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
      PyObject* sequence = __pyx_t_4;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 561, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
      index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_1), 2) < 0) __PYX_ERR(0, 561, __pyx_L1_error)
      __pyx_t_5 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L10_unpacking_done;
      __pyx_L9_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 561, __pyx_L1_error)
      __pyx_L10_unpacking_done:;
    }
    __pyx_v_arg_tuple = __pyx_t_2;
    __pyx_t_2 = 0;
    __pyx_v_keyword_dict = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":562
 *     else:
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 *         return ExprNodes.GeneralCallNode(             # <<<<<<<<<<<<<<
 *             pos, function=function, positional_args=arg_tuple, keyword_args=keyword_dict)
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_GeneralCallNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 562, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":563
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 *         return ExprNodes.GeneralCallNode(
 *             pos, function=function, positional_args=arg_tuple, keyword_args=keyword_dict)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 562, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_function, __pyx_v_function) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_positional_args, __pyx_v_arg_tuple) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_keyword_args, __pyx_v_keyword_dict) < 0) __PYX_ERR(0, 563, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":562
 *     else:
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 *         return ExprNodes.GeneralCallNode(             # <<<<<<<<<<<<<<
 *             pos, function=function, positional_args=arg_tuple, keyword_args=keyword_dict)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 562, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":553
 * 
 * 
 * def p_call(s, function):             # <<<<<<<<<<<<<<
 *     # s.sy == '('
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_positional_args);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XDECREF(__pyx_v_arg_tuple);
  __Pyx_XDECREF(__pyx_v_keyword_dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":570
 * #subscriptlist: subscript (',' subscript)* [',']
 * 
 * def p_index(s, base):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_index(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_base) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_subscripts = NULL;
  PyObject *__pyx_v_is_single_value = NULL;
  PyObject *__pyx_v_start = NULL;
  PyObject *__pyx_v_stop = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_indexes = NULL;
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_RefNannySetupContext("p_index", 0);

  /* "Cython/Compiler/Parsing.py":572
 * def p_index(s, base):
 *     # s.sy == '['
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     subscripts, is_single_value = p_subscript_list(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":573
 *     # s.sy == '['
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     subscripts, is_single_value = p_subscript_list(s)
 *     if is_single_value and len(subscripts[0]) == 2:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":574
 *     pos = s.position()
 *     s.next()
 *     subscripts, is_single_value = p_subscript_list(s)             # <<<<<<<<<<<<<<
 *     if is_single_value and len(subscripts[0]) == 2:
 *         start, stop = subscripts[0]
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_subscript_list(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 574, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 574, __pyx_L1_error)
  }
  __pyx_v_subscripts = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_is_single_value = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":575
 *     s.next()
 *     subscripts, is_single_value = p_subscript_list(s)
 *     if is_single_value and len(subscripts[0]) == 2:             # <<<<<<<<<<<<<<
 *         start, stop = subscripts[0]
 *         result = ExprNodes.SliceIndexNode(pos,
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_is_single_value); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 575, __pyx_L1_error)
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_subscripts, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = ((__pyx_t_6 == 2) != 0);
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":576
 *     subscripts, is_single_value = p_subscript_list(s)
 *     if is_single_value and len(subscripts[0]) == 2:
 *         start, stop = subscripts[0]             # <<<<<<<<<<<<<<
 *         result = ExprNodes.SliceIndexNode(pos,
 *             base = base, start = start, stop = stop)
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_subscripts, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 576, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 576, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 576, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 576, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 576, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }
    __pyx_v_start = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_stop = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":577
 *     if is_single_value and len(subscripts[0]) == 2:
 *         start, stop = subscripts[0]
 *         result = ExprNodes.SliceIndexNode(pos,             # <<<<<<<<<<<<<<
 *             base = base, start = start, stop = stop)
 *     else:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SliceIndexNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":578
 *         start, stop = subscripts[0]
 *         result = ExprNodes.SliceIndexNode(pos,
 *             base = base, start = start, stop = stop)             # <<<<<<<<<<<<<<
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)
 */
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 578, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_start, __pyx_v_start) < 0) __PYX_ERR(0, 578, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stop, __pyx_v_stop) < 0) __PYX_ERR(0, 578, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":577
 *     if is_single_value and len(subscripts[0]) == 2:
 *         start, stop = subscripts[0]
 *         result = ExprNodes.SliceIndexNode(pos,             # <<<<<<<<<<<<<<
 *             base = base, start = start, stop = stop)
 *     else:
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_result = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":575
 *     s.next()
 *     subscripts, is_single_value = p_subscript_list(s)
 *     if is_single_value and len(subscripts[0]) == 2:             # <<<<<<<<<<<<<<
 *         start, stop = subscripts[0]
 *         result = ExprNodes.SliceIndexNode(pos,
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":580
 *             base = base, start = start, stop = stop)
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)             # <<<<<<<<<<<<<<
 *         if is_single_value:
 *             index = indexes[0]
 */
  /*else*/ {
    __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes(__pyx_v_pos, __pyx_v_subscripts); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 580, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_indexes = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":581
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)
 *         if is_single_value:             # <<<<<<<<<<<<<<
 *             index = indexes[0]
 *         else:
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_is_single_value); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 581, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":582
 *         indexes = make_slice_nodes(pos, subscripts)
 *         if is_single_value:
 *             index = indexes[0]             # <<<<<<<<<<<<<<
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 */
      __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_indexes, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_v_index = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":581
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)
 *         if is_single_value:             # <<<<<<<<<<<<<<
 *             index = indexes[0]
 *         else:
 */
      goto __pyx_L8;
    }

    /* "Cython/Compiler/Parsing.py":584
 *             index = indexes[0]
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)             # <<<<<<<<<<<<<<
 *         result = ExprNodes.IndexNode(pos,
 *             base = base, index = index)
 */
    /*else*/ {
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_args, __pyx_v_indexes) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_v_index = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":585
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 *         result = ExprNodes.IndexNode(pos,             # <<<<<<<<<<<<<<
 *             base = base, index = index)
 *     s.expect(']')
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IndexNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":586
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 *         result = ExprNodes.IndexNode(pos,
 *             base = base, index = index)             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     return result
 */
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 586, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_index, __pyx_v_index) < 0) __PYX_ERR(0, 586, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":585
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 *         result = ExprNodes.IndexNode(pos,             # <<<<<<<<<<<<<<
 *             base = base, index = index)
 *     s.expect(']')
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 585, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_result = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":587
 *         result = ExprNodes.IndexNode(pos,
 *             base = base, index = index)
 *     s.expect(']')             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_4 == -2)) __PYX_ERR(0, 587, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":588
 *             base = base, index = index)
 *     s.expect(']')
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_subscript_list(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":570
 * #subscriptlist: subscript (',' subscript)* [',']
 * 
 * def p_index(s, base):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_subscripts);
  __Pyx_XDECREF(__pyx_v_is_single_value);
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_stop);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_indexes);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":590
 *     return result
 * 
 * def p_subscript_list(s):             # <<<<<<<<<<<<<<
 *     is_single_value = True
 *     items = [p_subscript(s)]
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_subscript_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  int __pyx_v_is_single_value;
  PyObject *__pyx_v_items = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  __Pyx_RefNannySetupContext("p_subscript_list", 0);

  /* "Cython/Compiler/Parsing.py":591
 * 
 * def p_subscript_list(s):
 *     is_single_value = True             # <<<<<<<<<<<<<<
 *     items = [p_subscript(s)]
 *     while s.sy == ',':
 */
  __pyx_v_is_single_value = 1;

  /* "Cython/Compiler/Parsing.py":592
 * def p_subscript_list(s):
 *     is_single_value = True
 *     items = [p_subscript(s)]             # <<<<<<<<<<<<<<
 *     while s.sy == ',':
 *         is_single_value = False
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_subscript(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_items = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":593
 *     is_single_value = True
 *     items = [p_subscript(s)]
 *     while s.sy == ',':             # <<<<<<<<<<<<<<
 *         is_single_value = False
 *         s.next()
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 593, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":594
 *     items = [p_subscript(s)]
 *     while s.sy == ',':
 *         is_single_value = False             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ']':
 */
    __pyx_v_is_single_value = 0;

    /* "Cython/Compiler/Parsing.py":595
 *     while s.sy == ',':
 *         is_single_value = False
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == ']':
 *             break
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":596
 *         is_single_value = False
 *         s.next()
 *         if s.sy == ']':             # <<<<<<<<<<<<<<
 *             break
 *         items.append(p_subscript(s))
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__43, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 596, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":597
 *         s.next()
 *         if s.sy == ']':
 *             break             # <<<<<<<<<<<<<<
 *         items.append(p_subscript(s))
 *     return items, is_single_value
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":596
 *         is_single_value = False
 *         s.next()
 *         if s.sy == ']':             # <<<<<<<<<<<<<<
 *             break
 *         items.append(p_subscript(s))
 */
    }

    /* "Cython/Compiler/Parsing.py":598
 *         if s.sy == ']':
 *             break
 *         items.append(p_subscript(s))             # <<<<<<<<<<<<<<
 *     return items, is_single_value
 * 
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_subscript(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 598, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":599
 *             break
 *         items.append(p_subscript(s))
 *     return items, is_single_value             # <<<<<<<<<<<<<<
 * 
 * #subscript: '.' '.' '.' | test | [test] ':' [test] [':' [test]]
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_is_single_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_items);
  __Pyx_GIVEREF(__pyx_v_items);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_items);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":590
 *     return result
 * 
 * def p_subscript_list(s):             # <<<<<<<<<<<<<<
 *     is_single_value = True
 *     items = [p_subscript(s)]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_subscript_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":603
 * #subscript: '.' '.' '.' | test | [test] ':' [test] [':' [test]]
 * 
 * def p_subscript(s):             # <<<<<<<<<<<<<<
 *     # Parse a subscript and return a list of
 *     # 1, 2 or 3 ExprNodes, depending on how
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_subscript(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  CYTHON_UNUSED PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_start = NULL;
  PyObject *__pyx_v_stop = NULL;
  PyObject *__pyx_v_step = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("p_subscript", 0);

  /* "Cython/Compiler/Parsing.py":607
 *     # 1, 2 or 3 ExprNodes, depending on how
 *     # many slice elements were encountered.
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     start = p_slice_element(s, (':',))
 *     if s.sy != ':':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":608
 *     # many slice elements were encountered.
 *     pos = s.position()
 *     start = p_slice_element(s, (':',))             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         return [start]
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_slice_element(__pyx_v_s, __pyx_tuple__44); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_start = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":609
 *     pos = s.position()
 *     start = p_slice_element(s, (':',))
 *     if s.sy != ':':             # <<<<<<<<<<<<<<
 *         return [start]
 *     s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 609, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":610
 *     start = p_slice_element(s, (':',))
 *     if s.sy != ':':
 *         return [start]             # <<<<<<<<<<<<<<
 *     s.next()
 *     stop = p_slice_element(s, (':', ',', ']'))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_start);
    __Pyx_GIVEREF(__pyx_v_start);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":609
 *     pos = s.position()
 *     start = p_slice_element(s, (':',))
 *     if s.sy != ':':             # <<<<<<<<<<<<<<
 *         return [start]
 *     s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":611
 *     if s.sy != ':':
 *         return [start]
 *     s.next()             # <<<<<<<<<<<<<<
 *     stop = p_slice_element(s, (':', ',', ']'))
 *     if s.sy != ':':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":612
 *         return [start]
 *     s.next()
 *     stop = p_slice_element(s, (':', ',', ']'))             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         return [start, stop]
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_slice_element(__pyx_v_s, __pyx_tuple__45); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":613
 *     s.next()
 *     stop = p_slice_element(s, (':', ',', ']'))
 *     if s.sy != ':':             # <<<<<<<<<<<<<<
 *         return [start, stop]
 *     s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 613, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":614
 *     stop = p_slice_element(s, (':', ',', ']'))
 *     if s.sy != ':':
 *         return [start, stop]             # <<<<<<<<<<<<<<
 *     s.next()
 *     step = p_slice_element(s, (':', ',', ']'))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_start);
    __Pyx_GIVEREF(__pyx_v_start);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);
    __Pyx_INCREF(__pyx_v_stop);
    __Pyx_GIVEREF(__pyx_v_stop);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_stop);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":613
 *     s.next()
 *     stop = p_slice_element(s, (':', ',', ']'))
 *     if s.sy != ':':             # <<<<<<<<<<<<<<
 *         return [start, stop]
 *     s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":615
 *     if s.sy != ':':
 *         return [start, stop]
 *     s.next()             # <<<<<<<<<<<<<<
 *     step = p_slice_element(s, (':', ',', ']'))
 *     return [start, stop, step]
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":616
 *         return [start, stop]
 *     s.next()
 *     step = p_slice_element(s, (':', ',', ']'))             # <<<<<<<<<<<<<<
 *     return [start, stop, step]
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_slice_element(__pyx_v_s, __pyx_tuple__46); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_step = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":617
 *     s.next()
 *     step = p_slice_element(s, (':', ',', ']'))
 *     return [start, stop, step]             # <<<<<<<<<<<<<<
 * 
 * def p_slice_element(s, follow_set):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_start);
  __Pyx_GIVEREF(__pyx_v_start);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);
  __Pyx_INCREF(__pyx_v_stop);
  __Pyx_GIVEREF(__pyx_v_stop);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_stop);
  __Pyx_INCREF(__pyx_v_step);
  __Pyx_GIVEREF(__pyx_v_step);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_step);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":603
 * #subscript: '.' '.' '.' | test | [test] ':' [test] [':' [test]]
 * 
 * def p_subscript(s):             # <<<<<<<<<<<<<<
 *     # Parse a subscript and return a list of
 *     # 1, 2 or 3 ExprNodes, depending on how
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_subscript", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_stop);
  __Pyx_XDECREF(__pyx_v_step);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":619
 *     return [start, stop, step]
 * 
 * def p_slice_element(s, follow_set):             # <<<<<<<<<<<<<<
 *     # Simple expression which may be missing iff
 *     # it is followed by something in follow_set.
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_slice_element(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_follow_set) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_slice_element", 0);

  /* "Cython/Compiler/Parsing.py":622
 *     # Simple expression which may be missing iff
 *     # it is followed by something in follow_set.
 *     if s.sy not in follow_set:             # <<<<<<<<<<<<<<
 *         return p_test(s)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_follow_set, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 622, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":623
 *     # it is followed by something in follow_set.
 *     if s.sy not in follow_set:
 *         return p_test(s)             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":622
 *     # Simple expression which may be missing iff
 *     # it is followed by something in follow_set.
 *     if s.sy not in follow_set:             # <<<<<<<<<<<<<<
 *         return p_test(s)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":625
 *         return p_test(s)
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * def expect_ellipsis(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":619
 *     return [start, stop, step]
 * 
 * def p_slice_element(s, follow_set):             # <<<<<<<<<<<<<<
 *     # Simple expression which may be missing iff
 *     # it is followed by something in follow_set.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_slice_element", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":627
 *         return None
 * 
 * def expect_ellipsis(s):             # <<<<<<<<<<<<<<
 *     s.expect('.')
 *     s.expect('.')
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_expect_ellipsis(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("expect_ellipsis", 0);

  /* "Cython/Compiler/Parsing.py":628
 * 
 * def expect_ellipsis(s):
 *     s.expect('.')             # <<<<<<<<<<<<<<
 *     s.expect('.')
 *     s.expect('.')
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__37, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 628, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":629
 * def expect_ellipsis(s):
 *     s.expect('.')
 *     s.expect('.')             # <<<<<<<<<<<<<<
 *     s.expect('.')
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__37, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":630
 *     s.expect('.')
 *     s.expect('.')
 *     s.expect('.')             # <<<<<<<<<<<<<<
 * 
 * def make_slice_nodes(pos, subscripts):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__37, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 630, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":627
 *         return None
 * 
 * def expect_ellipsis(s):             # <<<<<<<<<<<<<<
 *     s.expect('.')
 *     s.expect('.')
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.expect_ellipsis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":632
 *     s.expect('.')
 * 
 * def make_slice_nodes(pos, subscripts):             # <<<<<<<<<<<<<<
 *     # Convert a list of subscripts as returned
 *     # by p_subscript_list into a list of ExprNodes,
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes(PyObject *__pyx_v_pos, PyObject *__pyx_v_subscripts) {
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_subscript = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("make_slice_nodes", 0);

  /* "Cython/Compiler/Parsing.py":637
 *     # creating SliceNodes for elements with 2 or
 *     # more components.
 *     result = []             # <<<<<<<<<<<<<<
 *     for subscript in subscripts:
 *         if len(subscript) == 1:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":638
 *     # more components.
 *     result = []
 *     for subscript in subscripts:             # <<<<<<<<<<<<<<
 *         if len(subscript) == 1:
 *             result.append(subscript[0])
 */
  if (likely(PyList_CheckExact(__pyx_v_subscripts)) || PyTuple_CheckExact(__pyx_v_subscripts)) {
    __pyx_t_1 = __pyx_v_subscripts; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_subscripts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 638, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 638, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 638, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 638, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 638, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 638, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_subscript, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":639
 *     result = []
 *     for subscript in subscripts:
 *         if len(subscript) == 1:             # <<<<<<<<<<<<<<
 *             result.append(subscript[0])
 *         else:
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_subscript); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 639, __pyx_L1_error)
    __pyx_t_6 = ((__pyx_t_5 == 1) != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":640
 *     for subscript in subscripts:
 *         if len(subscript) == 1:
 *             result.append(subscript[0])             # <<<<<<<<<<<<<<
 *         else:
 *             result.append(make_slice_node(pos, *subscript))
 */
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_subscript, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 640, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":639
 *     result = []
 *     for subscript in subscripts:
 *         if len(subscript) == 1:             # <<<<<<<<<<<<<<
 *             result.append(subscript[0])
 *         else:
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":642
 *             result.append(subscript[0])
 *         else:
 *             result.append(make_slice_node(pos, *subscript))             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    /*else*/ {
      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_make_slice_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
      __pyx_t_9 = PySequence_Tuple(__pyx_v_subscript); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_9); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":638
 *     # more components.
 *     result = []
 *     for subscript in subscripts:             # <<<<<<<<<<<<<<
 *         if len(subscript) == 1:
 *             result.append(subscript[0])
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":643
 *         else:
 *             result.append(make_slice_node(pos, *subscript))
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def make_slice_node(pos, start, stop = None, step = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":632
 *     s.expect('.')
 * 
 * def make_slice_nodes(pos, subscripts):             # <<<<<<<<<<<<<<
 *     # Convert a list of subscripts as returned
 *     # by p_subscript_list into a list of ExprNodes,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.make_slice_nodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_subscript);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":645
 *     return result
 * 
 * def make_slice_node(pos, start, stop = None, step = None):             # <<<<<<<<<<<<<<
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_1make_slice_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_make_slice_node(PyObject *__pyx_v_pos, PyObject *__pyx_v_start, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node *__pyx_optional_args) {
  PyObject *__pyx_v_stop = ((PyObject *)Py_None);
  PyObject *__pyx_v_step = ((PyObject *)Py_None);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("make_slice_node", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_stop = __pyx_optional_args->stop;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_step = __pyx_optional_args->step;
      }
    }
  }
  __Pyx_INCREF(__pyx_v_start);
  __Pyx_INCREF(__pyx_v_stop);
  __Pyx_INCREF(__pyx_v_step);

  /* "Cython/Compiler/Parsing.py":646
 * 
 * def make_slice_node(pos, start, stop = None, step = None):
 *     if not start:             # <<<<<<<<<<<<<<
 *         start = ExprNodes.NoneNode(pos)
 *     if not stop:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_start); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 646, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":647
 * def make_slice_node(pos, start, stop = None, step = None):
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *     if not stop:
 *         stop = ExprNodes.NoneNode(pos)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_5) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 647, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pos);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_start, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":646
 * 
 * def make_slice_node(pos, start, stop = None, step = None):
 *     if not start:             # <<<<<<<<<<<<<<
 *         start = ExprNodes.NoneNode(pos)
 *     if not stop:
 */
  }

  /* "Cython/Compiler/Parsing.py":648
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)
 *     if not stop:             # <<<<<<<<<<<<<<
 *         stop = ExprNodes.NoneNode(pos)
 *     if not step:
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 648, __pyx_L1_error)
  __pyx_t_1 = ((!__pyx_t_2) != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":649
 *         start = ExprNodes.NoneNode(pos)
 *     if not stop:
 *         stop = ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_6) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 649, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pos);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":648
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)
 *     if not stop:             # <<<<<<<<<<<<<<
 *         stop = ExprNodes.NoneNode(pos)
 *     if not step:
 */
  }

  /* "Cython/Compiler/Parsing.py":650
 *     if not stop:
 *         stop = ExprNodes.NoneNode(pos)
 *     if not step:             # <<<<<<<<<<<<<<
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_step); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 650, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":651
 *         stop = ExprNodes.NoneNode(pos)
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *     return ExprNodes.SliceNode(pos,
 *         start = start, stop = stop, step = step)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 651, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_5) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 651, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pos);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_step, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":650
 *     if not stop:
 *         stop = ExprNodes.NoneNode(pos)
 *     if not step:             # <<<<<<<<<<<<<<
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,
 */
  }

  /* "Cython/Compiler/Parsing.py":652
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,             # <<<<<<<<<<<<<<
 *         start = start, stop = stop, step = step)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SliceNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":653
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,
 *         start = start, stop = stop, step = step)             # <<<<<<<<<<<<<<
 * 
 * #atom: '(' [yield_expr|testlist_comp] ')' | '[' [listmaker] ']' | '{' [dict_or_set_maker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_start, __pyx_v_start) < 0) __PYX_ERR(0, 653, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_stop, __pyx_v_stop) < 0) __PYX_ERR(0, 653, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_step, __pyx_v_step) < 0) __PYX_ERR(0, 653, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":652
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,             # <<<<<<<<<<<<<<
 *         start = start, stop = stop, step = step)
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":645
 *     return result
 * 
 * def make_slice_node(pos, start, stop = None, step = None):             # <<<<<<<<<<<<<<
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.make_slice_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_stop);
  __Pyx_XDECREF(__pyx_v_step);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_1make_slice_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_1make_slice_node = {"make_slice_node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_1make_slice_node, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_1make_slice_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_pos = 0;
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_step = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_slice_node (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pos,&__pyx_n_s_start,&__pyx_n_s_stop,&__pyx_n_s_step,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = ((PyObject *)Py_None);
    values[3] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pos)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("make_slice_node", 0, 2, 4, 1); __PYX_ERR(0, 645, __pyx_L3_error)
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_stop);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_step);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "make_slice_node") < 0)) __PYX_ERR(0, 645, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_pos = values[0];
    __pyx_v_start = values[1];
    __pyx_v_stop = values[2];
    __pyx_v_step = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_slice_node", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 645, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.make_slice_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_make_slice_node(__pyx_self, __pyx_v_pos, __pyx_v_start, __pyx_v_stop, __pyx_v_step);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_make_slice_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pos, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node __pyx_t_2;
  __Pyx_RefNannySetupContext("make_slice_node", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.stop = __pyx_v_stop;
  __pyx_t_2.step = __pyx_v_step;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_make_slice_node(__pyx_v_pos, __pyx_v_start, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.make_slice_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":657
 * #atom: '(' [yield_expr|testlist_comp] ')' | '[' [listmaker] ']' | '{' [dict_or_set_maker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+
 * 
 * def p_atom(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     sy = s.sy
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_atom(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_sy = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_bytes_value = NULL;
  PyObject *__pyx_v_unicode_value = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("p_atom", 0);

  /* "Cython/Compiler/Parsing.py":658
 * 
 * def p_atom(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     sy = s.sy
 *     if sy == '(':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":659
 * def p_atom(s):
 *     pos = s.position()
 *     sy = s.sy             # <<<<<<<<<<<<<<
 *     if sy == '(':
 *         s.next()
 */
  __pyx_t_1 = __pyx_v_s->sy;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_sy = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":660
 *     pos = s.position()
 *     sy = s.sy
 *     if sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ')':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 660, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":661
 *     sy = s.sy
 *     if sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == ')':
 *             result = ExprNodes.TupleNode(pos, args = [])
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":662
 *     if sy == '(':
 *         s.next()
 *         if s.sy == ')':             # <<<<<<<<<<<<<<
 *             result = ExprNodes.TupleNode(pos, args = [])
 *         elif s.sy == 'yield':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__31, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 662, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":663
 *         s.next()
 *         if s.sy == ')':
 *             result = ExprNodes.TupleNode(pos, args = [])             # <<<<<<<<<<<<<<
 *         elif s.sy == 'yield':
 *             result = p_yield_expression(s)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_t_5) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_result = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":662
 *     if sy == '(':
 *         s.next()
 *         if s.sy == ')':             # <<<<<<<<<<<<<<
 *             result = ExprNodes.TupleNode(pos, args = [])
 *         elif s.sy == 'yield':
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":664
 *         if s.sy == ')':
 *             result = ExprNodes.TupleNode(pos, args = [])
 *         elif s.sy == 'yield':             # <<<<<<<<<<<<<<
 *             result = p_yield_expression(s)
 *         else:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 664, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":665
 *             result = ExprNodes.TupleNode(pos, args = [])
 *         elif s.sy == 'yield':
 *             result = p_yield_expression(s)             # <<<<<<<<<<<<<<
 *         else:
 *             result = p_testlist_comp(s)
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 665, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_result = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":664
 *         if s.sy == ')':
 *             result = ExprNodes.TupleNode(pos, args = [])
 *         elif s.sy == 'yield':             # <<<<<<<<<<<<<<
 *             result = p_yield_expression(s)
 *         else:
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":667
 *             result = p_yield_expression(s)
 *         else:
 *             result = p_testlist_comp(s)             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *         return result
 */
    /*else*/ {
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist_comp(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_result = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":668
 *         else:
 *             result = p_testlist_comp(s)
 *         s.expect(')')             # <<<<<<<<<<<<<<
 *         return result
 *     elif sy == '[':
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 668, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":669
 *             result = p_testlist_comp(s)
 *         s.expect(')')
 *         return result             # <<<<<<<<<<<<<<
 *     elif sy == '[':
 *         return p_list_maker(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_result);
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":660
 *     pos = s.position()
 *     sy = s.sy
 *     if sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ')':
 */
  }

  /* "Cython/Compiler/Parsing.py":670
 *         s.expect(')')
 *         return result
 *     elif sy == '[':             # <<<<<<<<<<<<<<
 *         return p_list_maker(s)
 *     elif sy == '{':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 670, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":671
 *         return result
 *     elif sy == '[':
 *         return p_list_maker(s)             # <<<<<<<<<<<<<<
 *     elif sy == '{':
 *         return p_dict_or_set_maker(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_list_maker(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 671, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":670
 *         s.expect(')')
 *         return result
 *     elif sy == '[':             # <<<<<<<<<<<<<<
 *         return p_list_maker(s)
 *     elif sy == '{':
 */
  }

  /* "Cython/Compiler/Parsing.py":672
 *     elif sy == '[':
 *         return p_list_maker(s)
 *     elif sy == '{':             # <<<<<<<<<<<<<<
 *         return p_dict_or_set_maker(s)
 *     elif sy == '`':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__47, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 672, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":673
 *         return p_list_maker(s)
 *     elif sy == '{':
 *         return p_dict_or_set_maker(s)             # <<<<<<<<<<<<<<
 *     elif sy == '`':
 *         return p_backquote_expr(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_dict_or_set_maker(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 673, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":672
 *     elif sy == '[':
 *         return p_list_maker(s)
 *     elif sy == '{':             # <<<<<<<<<<<<<<
 *         return p_dict_or_set_maker(s)
 *     elif sy == '`':
 */
  }

  /* "Cython/Compiler/Parsing.py":674
 *     elif sy == '{':
 *         return p_dict_or_set_maker(s)
 *     elif sy == '`':             # <<<<<<<<<<<<<<
 *         return p_backquote_expr(s)
 *     elif sy == '.':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 674, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":675
 *         return p_dict_or_set_maker(s)
 *     elif sy == '`':
 *         return p_backquote_expr(s)             # <<<<<<<<<<<<<<
 *     elif sy == '.':
 *         expect_ellipsis(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_backquote_expr(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":674
 *     elif sy == '{':
 *         return p_dict_or_set_maker(s)
 *     elif sy == '`':             # <<<<<<<<<<<<<<
 *         return p_backquote_expr(s)
 *     elif sy == '.':
 */
  }

  /* "Cython/Compiler/Parsing.py":676
 *     elif sy == '`':
 *         return p_backquote_expr(s)
 *     elif sy == '.':             # <<<<<<<<<<<<<<
 *         expect_ellipsis(s)
 *         return ExprNodes.EllipsisNode(pos)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 676, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":677
 *         return p_backquote_expr(s)
 *     elif sy == '.':
 *         expect_ellipsis(s)             # <<<<<<<<<<<<<<
 *         return ExprNodes.EllipsisNode(pos)
 *     elif sy == 'INT':
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_expect_ellipsis(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":678
 *     elif sy == '.':
 *         expect_ellipsis(s)
 *         return ExprNodes.EllipsisNode(pos)             # <<<<<<<<<<<<<<
 *     elif sy == 'INT':
 *         return p_int_literal(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_EllipsisNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_3) {
      __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
        __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_5);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
        __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_5);
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pos);
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":676
 *     elif sy == '`':
 *         return p_backquote_expr(s)
 *     elif sy == '.':             # <<<<<<<<<<<<<<
 *         expect_ellipsis(s)
 *         return ExprNodes.EllipsisNode(pos)
 */
  }

  /* "Cython/Compiler/Parsing.py":679
 *         expect_ellipsis(s)
 *         return ExprNodes.EllipsisNode(pos)
 *     elif sy == 'INT':             # <<<<<<<<<<<<<<
 *         return p_int_literal(s)
 *     elif sy == 'FLOAT':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_INT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 679, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":680
 *         return ExprNodes.EllipsisNode(pos)
 *     elif sy == 'INT':
 *         return p_int_literal(s)             # <<<<<<<<<<<<<<
 *     elif sy == 'FLOAT':
 *         value = s.systring
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_int_literal(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 680, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":679
 *         expect_ellipsis(s)
 *         return ExprNodes.EllipsisNode(pos)
 *     elif sy == 'INT':             # <<<<<<<<<<<<<<
 *         return p_int_literal(s)
 *     elif sy == 'FLOAT':
 */
  }

  /* "Cython/Compiler/Parsing.py":681
 *     elif sy == 'INT':
 *         return p_int_literal(s)
 *     elif sy == 'FLOAT':             # <<<<<<<<<<<<<<
 *         value = s.systring
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_FLOAT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 681, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":682
 *         return p_int_literal(s)
 *     elif sy == 'FLOAT':
 *         value = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.FloatNode(pos, value = value)
 */
    __pyx_t_5 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_v_value = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":683
 *     elif sy == 'FLOAT':
 *         value = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":684
 *         value = s.systring
 *         s.next()
 *         return ExprNodes.FloatNode(pos, value = value)             # <<<<<<<<<<<<<<
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_FloatNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 684, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":681
 *     elif sy == 'INT':
 *         return p_int_literal(s)
 *     elif sy == 'FLOAT':             # <<<<<<<<<<<<<<
 *         value = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":685
 *         s.next()
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':             # <<<<<<<<<<<<<<
 *         value = s.systring[:-1]
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_IMAG, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 685, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":686
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)
 */
    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_s->systring, 0, -1L, NULL, NULL, &__pyx_slice__49, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_value = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":687
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.ImagNode(pos, value = value)
 *     elif sy == 'BEGIN_STRING':
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 687, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":688
 *         value = s.systring[:-1]
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)             # <<<<<<<<<<<<<<
 *     elif sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ImagNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":685
 *         s.next()
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':             # <<<<<<<<<<<<<<
 *         value = s.systring[:-1]
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":689
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)
 *     elif sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)
 *         if kind == 'c':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_BEGIN_STRING, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 689, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":690
 *         return ExprNodes.ImagNode(pos, value = value)
 *     elif sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)             # <<<<<<<<<<<<<<
 *         if kind == 'c':
 *             return ExprNodes.CharNode(pos, value = bytes_value)
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 690, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
      PyObject* sequence = __pyx_t_5;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 3)) {
        if (size > 3) __Pyx_RaiseTooManyValuesError(3);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 690, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 690, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 690, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 690, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_1 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 2; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(0, 690, __pyx_L1_error)
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_unpacking_done;
      __pyx_L5_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 690, __pyx_L1_error)
      __pyx_L6_unpacking_done:;
    }
    __pyx_v_kind = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_bytes_value = __pyx_t_1;
    __pyx_t_1 = 0;
    __pyx_v_unicode_value = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":691
 *     elif sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)
 *         if kind == 'c':             # <<<<<<<<<<<<<<
 *             return ExprNodes.CharNode(pos, value = bytes_value)
 *         elif kind == 'u':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 691, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":692
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)
 *         if kind == 'c':
 *             return ExprNodes.CharNode(pos, value = bytes_value)             # <<<<<<<<<<<<<<
 *         elif kind == 'u':
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_CharNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 692, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 692, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 692, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_bytes_value) < 0) __PYX_ERR(0, 692, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 692, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":691
 *     elif sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)
 *         if kind == 'c':             # <<<<<<<<<<<<<<
 *             return ExprNodes.CharNode(pos, value = bytes_value)
 *         elif kind == 'u':
 */
    }

    /* "Cython/Compiler/Parsing.py":693
 *         if kind == 'c':
 *             return ExprNodes.CharNode(pos, value = bytes_value)
 *         elif kind == 'u':             # <<<<<<<<<<<<<<
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 693, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":694
 *             return ExprNodes.CharNode(pos, value = bytes_value)
 *         elif kind == 'u':
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)             # <<<<<<<<<<<<<<
 *         elif kind == 'b':
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, __pyx_v_unicode_value) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_bytes_value, __pyx_v_bytes_value) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":693
 *         if kind == 'c':
 *             return ExprNodes.CharNode(pos, value = bytes_value)
 *         elif kind == 'u':             # <<<<<<<<<<<<<<
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':
 */
    }

    /* "Cython/Compiler/Parsing.py":695
 *         elif kind == 'u':
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':             # <<<<<<<<<<<<<<
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         elif kind == 'f':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 695, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":696
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':
 *             return ExprNodes.BytesNode(pos, value = bytes_value)             # <<<<<<<<<<<<<<
 *         elif kind == 'f':
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BytesNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_bytes_value) < 0) __PYX_ERR(0, 696, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":695
 *         elif kind == 'u':
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':             # <<<<<<<<<<<<<<
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         elif kind == 'f':
 */
    }

    /* "Cython/Compiler/Parsing.py":697
 *         elif kind == 'b':
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         elif kind == 'f':             # <<<<<<<<<<<<<<
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)
 *         elif kind == '':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_f, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 697, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":698
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         elif kind == 'f':
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)             # <<<<<<<<<<<<<<
 *         elif kind == '':
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_JoinedStrNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 698, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 698, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_values, __pyx_v_unicode_value) < 0) __PYX_ERR(0, 698, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 698, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":697
 *         elif kind == 'b':
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         elif kind == 'f':             # <<<<<<<<<<<<<<
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)
 *         elif kind == '':
 */
    }

    /* "Cython/Compiler/Parsing.py":699
 *         elif kind == 'f':
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)
 *         elif kind == '':             # <<<<<<<<<<<<<<
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 *         else:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 699, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":700
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)
 *         elif kind == '':
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)             # <<<<<<<<<<<<<<
 *         else:
 *             s.error("invalid string kind '%s'" % kind)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_StringNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 700, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 700, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_bytes_value) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_unicode_value, __pyx_v_unicode_value) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 700, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":699
 *         elif kind == 'f':
 *             return ExprNodes.JoinedStrNode(pos, values = unicode_value)
 *         elif kind == '':             # <<<<<<<<<<<<<<
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":702
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 *         else:
 *             s.error("invalid string kind '%s'" % kind)             # <<<<<<<<<<<<<<
 *     elif sy == 'IDENT':
 *         name = s.systring
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_invalid_string_kind_s, __pyx_v_kind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 702, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_5) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_3);
          __pyx_t_3 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }

    /* "Cython/Compiler/Parsing.py":689
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)
 *     elif sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         kind, bytes_value, unicode_value = p_cat_string_literal(s)
 *         if kind == 'c':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":703
 *         else:
 *             s.error("invalid string kind '%s'" % kind)
 *     elif sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 703, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":704
 *             s.error("invalid string kind '%s'" % kind)
 *     elif sy == 'IDENT':
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         if name == "None":
 */
    __pyx_t_4 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":705
 *     elif sy == 'IDENT':
 *         name = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         if name == "None":
 *             return ExprNodes.NoneNode(pos)
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":706
 *         name = s.systring
 *         s.next()
 *         if name == "None":             # <<<<<<<<<<<<<<
 *             return ExprNodes.NoneNode(pos)
 *         elif name == "True":
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_None, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 706, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":707
 *         s.next()
 *         if name == "None":
 *             return ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *         elif name == "True":
 *             return ExprNodes.BoolNode(pos, value=True)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_6) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        {
          __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL;
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_pos);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":706
 *         name = s.systring
 *         s.next()
 *         if name == "None":             # <<<<<<<<<<<<<<
 *             return ExprNodes.NoneNode(pos)
 *         elif name == "True":
 */
    }

    /* "Cython/Compiler/Parsing.py":708
 *         if name == "None":
 *             return ExprNodes.NoneNode(pos)
 *         elif name == "True":             # <<<<<<<<<<<<<<
 *             return ExprNodes.BoolNode(pos, value=True)
 *         elif name == "False":
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_True, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 708, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":709
 *             return ExprNodes.NoneNode(pos)
 *         elif name == "True":
 *             return ExprNodes.BoolNode(pos, value=True)             # <<<<<<<<<<<<<<
 *         elif name == "False":
 *             return ExprNodes.BoolNode(pos, value=False)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, Py_True) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":708
 *         if name == "None":
 *             return ExprNodes.NoneNode(pos)
 *         elif name == "True":             # <<<<<<<<<<<<<<
 *             return ExprNodes.BoolNode(pos, value=True)
 *         elif name == "False":
 */
    }

    /* "Cython/Compiler/Parsing.py":710
 *         elif name == "True":
 *             return ExprNodes.BoolNode(pos, value=True)
 *         elif name == "False":             # <<<<<<<<<<<<<<
 *             return ExprNodes.BoolNode(pos, value=False)
 *         elif name == "NULL" and not s.in_python_file:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_False, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 710, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":711
 *             return ExprNodes.BoolNode(pos, value=True)
 *         elif name == "False":
 *             return ExprNodes.BoolNode(pos, value=False)             # <<<<<<<<<<<<<<
 *         elif name == "NULL" and not s.in_python_file:
 *             return ExprNodes.NullNode(pos)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, Py_False) < 0) __PYX_ERR(0, 711, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":710
 *         elif name == "True":
 *             return ExprNodes.BoolNode(pos, value=True)
 *         elif name == "False":             # <<<<<<<<<<<<<<
 *             return ExprNodes.BoolNode(pos, value=False)
 *         elif name == "NULL" and not s.in_python_file:
 */
    }

    /* "Cython/Compiler/Parsing.py":712
 *         elif name == "False":
 *             return ExprNodes.BoolNode(pos, value=False)
 *         elif name == "NULL" and not s.in_python_file:             # <<<<<<<<<<<<<<
 *             return ExprNodes.NullNode(pos)
 *         else:
 */
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_NULL, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 712, __pyx_L1_error)
    if (__pyx_t_8) {
    } else {
      __pyx_t_2 = __pyx_t_8;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_8 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
    __pyx_t_2 = __pyx_t_8;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":713
 *             return ExprNodes.BoolNode(pos, value=False)
 *         elif name == "NULL" and not s.in_python_file:
 *             return ExprNodes.NullNode(pos)             # <<<<<<<<<<<<<<
 *         else:
 *             return p_name(s, name)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NullNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 713, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_3) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_pos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 713, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pos);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 713, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":712
 *         elif name == "False":
 *             return ExprNodes.BoolNode(pos, value=False)
 *         elif name == "NULL" and not s.in_python_file:             # <<<<<<<<<<<<<<
 *             return ExprNodes.NullNode(pos)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":715
 *             return ExprNodes.NullNode(pos)
 *         else:
 *             return p_name(s, name)             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("Expected an identifier or literal")
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_name(__pyx_v_s, __pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 715, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":703
 *         else:
 *             s.error("invalid string kind '%s'" % kind)
 *     elif sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":717
 *             return p_name(s, name)
 *     else:
 *         s.error("Expected an identifier or literal")             # <<<<<<<<<<<<<<
 * 
 * def p_int_literal(s):
 */
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":657
 * #atom: '(' [yield_expr|testlist_comp] ')' | '[' [listmaker] ']' | '{' [dict_or_set_maker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+
 * 
 * def p_atom(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     sy = s.sy
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_atom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_sy);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_bytes_value);
  __Pyx_XDECREF(__pyx_v_unicode_value);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":719
 *         s.error("Expected an identifier or literal")
 * 
 * def p_int_literal(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     value = s.systring
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_int_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_unsigned = NULL;
  PyObject *__pyx_v_longness = NULL;
  PyObject *__pyx_v_is_c_literal = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  Py_UCS4 __pyx_t_3;
  int __pyx_t_4;
  Py_UCS4 __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("p_int_literal", 0);

  /* "Cython/Compiler/Parsing.py":720
 * 
 * def p_int_literal(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     value = s.systring
 *     s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":721
 * def p_int_literal(s):
 *     pos = s.position()
 *     value = s.systring             # <<<<<<<<<<<<<<
 *     s.next()
 *     unsigned = ""
 */
  if (!(likely(PyUnicode_CheckExact(__pyx_v_s->systring))||((__pyx_v_s->systring) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_s->systring)->tp_name), 0))) __PYX_ERR(0, 721, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_s->systring;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_value = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":722
 *     pos = s.position()
 *     value = s.systring
 *     s.next()             # <<<<<<<<<<<<<<
 *     unsigned = ""
 *     longness = ""
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":723
 *     value = s.systring
 *     s.next()
 *     unsigned = ""             # <<<<<<<<<<<<<<
 *     longness = ""
 *     while value[-1] in u"UuLl":
 */
  __Pyx_INCREF(__pyx_kp_u__50);
  __pyx_v_unsigned = __pyx_kp_u__50;

  /* "Cython/Compiler/Parsing.py":724
 *     s.next()
 *     unsigned = ""
 *     longness = ""             # <<<<<<<<<<<<<<
 *     while value[-1] in u"UuLl":
 *         if value[-1] in u"Ll":
 */
  __Pyx_INCREF(__pyx_kp_u__50);
  __pyx_v_longness = __pyx_kp_u__50;

  /* "Cython/Compiler/Parsing.py":725
 *     unsigned = ""
 *     longness = ""
 *     while value[-1] in u"UuLl":             # <<<<<<<<<<<<<<
 *         if value[-1] in u"Ll":
 *             longness += "L"
 */
  while (1) {
    __pyx_t_3 = __Pyx_GetItemInt_Unicode(__pyx_v_value, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_3 == (Py_UCS4)-1)) __PYX_ERR(0, 725, __pyx_L1_error)
    switch (__pyx_t_3) {
      case 76:
      case 85:
      case 0x6C:
      case 0x75:
      __pyx_t_2 = 1;
      break;
      default:
      __pyx_t_2 = 0;
      break;
    }
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":726
 *     longness = ""
 *     while value[-1] in u"UuLl":
 *         if value[-1] in u"Ll":             # <<<<<<<<<<<<<<
 *             longness += "L"
 *         else:
 */
    __pyx_t_5 = __Pyx_GetItemInt_Unicode(__pyx_v_value, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_5 == (Py_UCS4)-1)) __PYX_ERR(0, 726, __pyx_L1_error)
    switch (__pyx_t_5) {
      case 76:
      case 0x6C:

      /* "Cython/Compiler/Parsing.py":727
 *     while value[-1] in u"UuLl":
 *         if value[-1] in u"Ll":
 *             longness += "L"             # <<<<<<<<<<<<<<
 *         else:
 *             unsigned += "U"
 */
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_v_longness, __pyx_n_u_L); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_longness, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":726
 *     longness = ""
 *     while value[-1] in u"UuLl":
 *         if value[-1] in u"Ll":             # <<<<<<<<<<<<<<
 *             longness += "L"
 *         else:
 */
      break;
      default:

      /* "Cython/Compiler/Parsing.py":729
 *             longness += "L"
 *         else:
 *             unsigned += "U"             # <<<<<<<<<<<<<<
 *         value = value[:-1]
 *     # '3L' is ambiguous in Py2 but not in Py3.  '3U' and '3LL' are
 */
      __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_v_unsigned, __pyx_n_u_U); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_unsigned, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      break;
    }

    /* "Cython/Compiler/Parsing.py":730
 *         else:
 *             unsigned += "U"
 *         value = value[:-1]             # <<<<<<<<<<<<<<
 *     # '3L' is ambiguous in Py2 but not in Py3.  '3U' and '3LL' are
 *     # illegal in Py2 Python files.  All suffixes are illegal in Py3
 */
    if (unlikely(__pyx_v_value == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 730, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyUnicode_Substring(__pyx_v_value, 0, -1L); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_value, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":734
 *     # illegal in Py2 Python files.  All suffixes are illegal in Py3
 *     # Python files.
 *     is_c_literal = None             # <<<<<<<<<<<<<<
 *     if unsigned:
 *         is_c_literal = True
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_is_c_literal = Py_None;

  /* "Cython/Compiler/Parsing.py":735
 *     # Python files.
 *     is_c_literal = None
 *     if unsigned:             # <<<<<<<<<<<<<<
 *         is_c_literal = True
 *     elif longness:
 */
  __pyx_t_4 = (__pyx_v_unsigned != Py_None) && (__Pyx_PyUnicode_IS_TRUE(__pyx_v_unsigned) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":736
 *     is_c_literal = None
 *     if unsigned:
 *         is_c_literal = True             # <<<<<<<<<<<<<<
 *     elif longness:
 *         if longness == 'LL' or s.context.language_level >= 3:
 */
    __Pyx_INCREF(Py_True);
    __Pyx_DECREF_SET(__pyx_v_is_c_literal, Py_True);

    /* "Cython/Compiler/Parsing.py":735
 *     # Python files.
 *     is_c_literal = None
 *     if unsigned:             # <<<<<<<<<<<<<<
 *         is_c_literal = True
 *     elif longness:
 */
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":737
 *     if unsigned:
 *         is_c_literal = True
 *     elif longness:             # <<<<<<<<<<<<<<
 *         if longness == 'LL' or s.context.language_level >= 3:
 *             is_c_literal = True
 */
  __pyx_t_4 = (__pyx_v_longness != Py_None) && (__Pyx_PyUnicode_IS_TRUE(__pyx_v_longness) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":738
 *         is_c_literal = True
 *     elif longness:
 *         if longness == 'LL' or s.context.language_level >= 3:             # <<<<<<<<<<<<<<
 *             is_c_literal = True
 *     if s.in_python_file:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_longness, __pyx_n_u_LL, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 738, __pyx_L1_error)
    __pyx_t_6 = (__pyx_t_2 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_4 = __pyx_t_6;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 738, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 738, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_4 = __pyx_t_6;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":739
 *     elif longness:
 *         if longness == 'LL' or s.context.language_level >= 3:
 *             is_c_literal = True             # <<<<<<<<<<<<<<
 *     if s.in_python_file:
 *         if is_c_literal:
 */
      __Pyx_INCREF(Py_True);
      __Pyx_DECREF_SET(__pyx_v_is_c_literal, Py_True);

      /* "Cython/Compiler/Parsing.py":738
 *         is_c_literal = True
 *     elif longness:
 *         if longness == 'LL' or s.context.language_level >= 3:             # <<<<<<<<<<<<<<
 *             is_c_literal = True
 *     if s.in_python_file:
 */
    }

    /* "Cython/Compiler/Parsing.py":737
 *     if unsigned:
 *         is_c_literal = True
 *     elif longness:             # <<<<<<<<<<<<<<
 *         if longness == 'LL' or s.context.language_level >= 3:
 *             is_c_literal = True
 */
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":740
 *         if longness == 'LL' or s.context.language_level >= 3:
 *             is_c_literal = True
 *     if s.in_python_file:             # <<<<<<<<<<<<<<
 *         if is_c_literal:
 *             error(pos, "illegal integer literal syntax in Python source file")
 */
  __pyx_t_4 = (__pyx_v_s->in_python_file != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":741
 *             is_c_literal = True
 *     if s.in_python_file:
 *         if is_c_literal:             # <<<<<<<<<<<<<<
 *             error(pos, "illegal integer literal syntax in Python source file")
 *         is_c_literal = False
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_is_c_literal); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 741, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":742
 *     if s.in_python_file:
 *         if is_c_literal:
 *             error(pos, "illegal integer literal syntax in Python source file")             # <<<<<<<<<<<<<<
 *         is_c_literal = False
 *     return ExprNodes.IntNode(pos,
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
      __pyx_t_9 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_9 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_illegal_integer_literal_syntax_i};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_7);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_illegal_integer_literal_syntax_i};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_7);
      } else
      #endif
      {
        __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 742, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_illegal_integer_literal_syntax_i);
        __Pyx_GIVEREF(__pyx_kp_u_illegal_integer_literal_syntax_i);
        PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_kp_u_illegal_integer_literal_syntax_i);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":741
 *             is_c_literal = True
 *     if s.in_python_file:
 *         if is_c_literal:             # <<<<<<<<<<<<<<
 *             error(pos, "illegal integer literal syntax in Python source file")
 *         is_c_literal = False
 */
    }

    /* "Cython/Compiler/Parsing.py":743
 *         if is_c_literal:
 *             error(pos, "illegal integer literal syntax in Python source file")
 *         is_c_literal = False             # <<<<<<<<<<<<<<
 *     return ExprNodes.IntNode(pos,
 *                              is_c_literal = is_c_literal,
 */
    __Pyx_INCREF(Py_False);
    __Pyx_DECREF_SET(__pyx_v_is_c_literal, Py_False);

    /* "Cython/Compiler/Parsing.py":740
 *         if longness == 'LL' or s.context.language_level >= 3:
 *             is_c_literal = True
 *     if s.in_python_file:             # <<<<<<<<<<<<<<
 *         if is_c_literal:
 *             error(pos, "illegal integer literal syntax in Python source file")
 */
  }

  /* "Cython/Compiler/Parsing.py":744
 *             error(pos, "illegal integer literal syntax in Python source file")
 *         is_c_literal = False
 *     return ExprNodes.IntNode(pos,             # <<<<<<<<<<<<<<
 *                              is_c_literal = is_c_literal,
 *                              value = value,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IntNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":745
 *         is_c_literal = False
 *     return ExprNodes.IntNode(pos,
 *                              is_c_literal = is_c_literal,             # <<<<<<<<<<<<<<
 *                              value = value,
 *                              unsigned = unsigned,
 */
  __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_is_c_literal, __pyx_v_is_c_literal) < 0) __PYX_ERR(0, 745, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":746
 *     return ExprNodes.IntNode(pos,
 *                              is_c_literal = is_c_literal,
 *                              value = value,             # <<<<<<<<<<<<<<
 *                              unsigned = unsigned,
 *                              longness = longness)
 */
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 745, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":747
 *                              is_c_literal = is_c_literal,
 *                              value = value,
 *                              unsigned = unsigned,             # <<<<<<<<<<<<<<
 *                              longness = longness)
 * 
 */
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_unsigned, __pyx_v_unsigned) < 0) __PYX_ERR(0, 745, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":748
 *                              value = value,
 *                              unsigned = unsigned,
 *                              longness = longness)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_longness, __pyx_v_longness) < 0) __PYX_ERR(0, 745, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":744
 *             error(pos, "illegal integer literal syntax in Python source file")
 *         is_c_literal = False
 *     return ExprNodes.IntNode(pos,             # <<<<<<<<<<<<<<
 *                              is_c_literal = is_c_literal,
 *                              value = value,
 */
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":719
 *         s.error("Expected an identifier or literal")
 * 
 * def p_int_literal(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     value = s.systring
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_int_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_unsigned);
  __Pyx_XDECREF(__pyx_v_longness);
  __Pyx_XDECREF(__pyx_v_is_c_literal);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":751
 * 
 * 
 * def p_name(s, name):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if not s.compile_time_expr and name in s.compile_time_env:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_name", 0);

  /* "Cython/Compiler/Parsing.py":752
 * 
 * def p_name(s, name):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if not s.compile_time_expr and name in s.compile_time_env:
 *         value = s.compile_time_env.lookup_here(name)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":753
 * def p_name(s, name):
 *     pos = s.position()
 *     if not s.compile_time_expr and name in s.compile_time_env:             # <<<<<<<<<<<<<<
 *         value = s.compile_time_env.lookup_here(name)
 *         node = wrap_compile_time_constant(pos, value)
 */
  __pyx_t_3 = ((!(__pyx_v_s->compile_time_expr != 0)) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, ((PyObject *)__pyx_v_s->compile_time_env), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 753, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":754
 *     pos = s.position()
 *     if not s.compile_time_expr and name in s.compile_time_env:
 *         value = s.compile_time_env.lookup_here(name)             # <<<<<<<<<<<<<<
 *         node = wrap_compile_time_constant(pos, value)
 *         if node is not None:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_CompileTimeScope *)__pyx_v_s->compile_time_env->__pyx_vtab)->lookup_here(__pyx_v_s->compile_time_env, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":755
 *     if not s.compile_time_expr and name in s.compile_time_env:
 *         value = s.compile_time_env.lookup_here(name)
 *         node = wrap_compile_time_constant(pos, value)             # <<<<<<<<<<<<<<
 *         if node is not None:
 *             return node
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_wrap_compile_time_constant(__pyx_v_pos, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":756
 *         value = s.compile_time_env.lookup_here(name)
 *         node = wrap_compile_time_constant(pos, value)
 *         if node is not None:             # <<<<<<<<<<<<<<
 *             return node
 *     return ExprNodes.NameNode(pos, name=name)
 */
    __pyx_t_2 = (__pyx_v_node != Py_None);
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":757
 *         node = wrap_compile_time_constant(pos, value)
 *         if node is not None:
 *             return node             # <<<<<<<<<<<<<<
 *     return ExprNodes.NameNode(pos, name=name)
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_node);
      __pyx_r = __pyx_v_node;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":756
 *         value = s.compile_time_env.lookup_here(name)
 *         node = wrap_compile_time_constant(pos, value)
 *         if node is not None:             # <<<<<<<<<<<<<<
 *             return node
 *     return ExprNodes.NameNode(pos, name=name)
 */
    }

    /* "Cython/Compiler/Parsing.py":753
 * def p_name(s, name):
 *     pos = s.position()
 *     if not s.compile_time_expr and name in s.compile_time_env:             # <<<<<<<<<<<<<<
 *         value = s.compile_time_env.lookup_here(name)
 *         node = wrap_compile_time_constant(pos, value)
 */
  }

  /* "Cython/Compiler/Parsing.py":758
 *         if node is not None:
 *             return node
 *     return ExprNodes.NameNode(pos, name=name)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 758, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":751
 * 
 * 
 * def p_name(s, name):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if not s.compile_time_expr and name in s.compile_time_env:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":761
 * 
 * 
 * def wrap_compile_time_constant(pos, value):             # <<<<<<<<<<<<<<
 *     rep = repr(value)
 *     if value is None:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_wrap_compile_time_constant(PyObject *__pyx_v_pos, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_rep = NULL;
  PyObject *__pyx_v_bvalue = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  PyObject *(*__pyx_t_12)(PyObject *);
  int __pyx_t_13;
  __Pyx_RefNannySetupContext("wrap_compile_time_constant", 0);

  /* "Cython/Compiler/Parsing.py":762
 * 
 * def wrap_compile_time_constant(pos, value):
 *     rep = repr(value)             # <<<<<<<<<<<<<<
 *     if value is None:
 *         return ExprNodes.NoneNode(pos)
 */
  __pyx_t_1 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_rep = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":763
 * def wrap_compile_time_constant(pos, value):
 *     rep = repr(value)
 *     if value is None:             # <<<<<<<<<<<<<<
 *         return ExprNodes.NoneNode(pos)
 *     elif value is Ellipsis:
 */
  __pyx_t_2 = (__pyx_v_value == Py_None);
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":764
 *     rep = repr(value)
 *     if value is None:
 *         return ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *     elif value is Ellipsis:
 *         return ExprNodes.EllipsisNode(pos)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_5) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 764, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pos);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":763
 * def wrap_compile_time_constant(pos, value):
 *     rep = repr(value)
 *     if value is None:             # <<<<<<<<<<<<<<
 *         return ExprNodes.NoneNode(pos)
 *     elif value is Ellipsis:
 */
  }

  /* "Cython/Compiler/Parsing.py":765
 *     if value is None:
 *         return ExprNodes.NoneNode(pos)
 *     elif value is Ellipsis:             # <<<<<<<<<<<<<<
 *         return ExprNodes.EllipsisNode(pos)
 *     elif isinstance(value, bool):
 */
  __pyx_t_3 = (__pyx_v_value == __pyx_builtin_Ellipsis);
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":766
 *         return ExprNodes.NoneNode(pos)
 *     elif value is Ellipsis:
 *         return ExprNodes.EllipsisNode(pos)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, bool):
 *         return ExprNodes.BoolNode(pos, value=value)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_EllipsisNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 766, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_6) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 766, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pos);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":765
 *     if value is None:
 *         return ExprNodes.NoneNode(pos)
 *     elif value is Ellipsis:             # <<<<<<<<<<<<<<
 *         return ExprNodes.EllipsisNode(pos)
 *     elif isinstance(value, bool):
 */
  }

  /* "Cython/Compiler/Parsing.py":767
 *     elif value is Ellipsis:
 *         return ExprNodes.EllipsisNode(pos)
 *     elif isinstance(value, bool):             # <<<<<<<<<<<<<<
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):
 */
  __pyx_t_1 = ((PyObject*)&PyBool_Type);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":768
 *         return ExprNodes.EllipsisNode(pos)
 *     elif isinstance(value, bool):
 *         return ExprNodes.BoolNode(pos, value=value)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 768, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":767
 *     elif value is Ellipsis:
 *         return ExprNodes.EllipsisNode(pos)
 *     elif isinstance(value, bool):             # <<<<<<<<<<<<<<
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):
 */
  }

  /* "Cython/Compiler/Parsing.py":769
 *     elif isinstance(value, bool):
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):             # <<<<<<<<<<<<<<
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, float):
 */
  __pyx_t_3 = PyInt_Check(__pyx_v_value); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":770
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IntNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_rep) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_constant_result, __pyx_v_value) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":769
 *     elif isinstance(value, bool):
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):             # <<<<<<<<<<<<<<
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, float):
 */
  }

  /* "Cython/Compiler/Parsing.py":771
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, float):             # <<<<<<<<<<<<<<
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, _unicode):
 */
  __pyx_t_2 = PyFloat_Check(__pyx_v_value); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":772
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_FloatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_rep) < 0) __PYX_ERR(0, 772, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_constant_result, __pyx_v_value) < 0) __PYX_ERR(0, 772, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":771
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, float):             # <<<<<<<<<<<<<<
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, _unicode):
 */
  }

  /* "Cython/Compiler/Parsing.py":773
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, _unicode):             # <<<<<<<<<<<<<<
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):
 */
  __pyx_t_6 = __pyx_v_6Cython_8Compiler_7Parsing__unicode;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":774
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))             # <<<<<<<<<<<<<<
 *     elif isinstance(value, _bytes):
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
    __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_8) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_value};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_value};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
        __Pyx_INCREF(__pyx_v_value);
        __Pyx_GIVEREF(__pyx_v_value);
        PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_value);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_t_1) < 0) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":773
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep, constant_result=value)
 *     elif isinstance(value, _unicode):             # <<<<<<<<<<<<<<
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):
 */
  }

  /* "Cython/Compiler/Parsing.py":775
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):             # <<<<<<<<<<<<<<
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 */
  __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing__bytes;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":776
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one             # <<<<<<<<<<<<<<
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 *     elif isinstance(value, tuple):
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_bytes_literal);
    __pyx_t_4 = __pyx_v_6Cython_8Compiler_7Parsing_bytes_literal; __pyx_t_5 = NULL;
    __pyx_t_10 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_10 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_value, __pyx_n_u_ascii};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_value, __pyx_n_u_ascii};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 776, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_value);
      __Pyx_GIVEREF(__pyx_v_value);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_10, __pyx_v_value);
      __Pyx_INCREF(__pyx_n_u_ascii);
      __Pyx_GIVEREF(__pyx_n_u_ascii);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_10, __pyx_n_u_ascii);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_bvalue = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":777
 *     elif isinstance(value, _bytes):
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BytesNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_value, __pyx_v_bvalue) < 0) __PYX_ERR(0, 777, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_constant_result, __pyx_v_value) < 0) __PYX_ERR(0, 777, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":775
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):             # <<<<<<<<<<<<<<
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 */
  }

  /* "Cython/Compiler/Parsing.py":778
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 *     elif isinstance(value, tuple):             # <<<<<<<<<<<<<<
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]
 */
  __pyx_t_3 = PyTuple_Check(__pyx_v_value); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":779
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)             # <<<<<<<<<<<<<<
 *                 for arg in value]
 *         if None not in args:
 */
    { /* enter inner scope */
      PyObject *__pyx_8genexpr1__pyx_v_arg = NULL;
      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 779, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_5);

      /* "Cython/Compiler/Parsing.py":780
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]             # <<<<<<<<<<<<<<
 *         if None not in args:
 *             return ExprNodes.TupleNode(pos, args=args)
 */
      if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) {
        __pyx_t_6 = __pyx_v_value; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 780, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_12 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 780, __pyx_L6_error)
      }
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 780, __pyx_L6_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 780, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 780, __pyx_L6_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 780, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          }
        } else {
          __pyx_t_4 = __pyx_t_12(__pyx_t_6);
          if (unlikely(!__pyx_t_4)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 780, __pyx_L6_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_arg, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":779
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)             # <<<<<<<<<<<<<<
 *                 for arg in value]
 *         if None not in args:
 */
        __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_wrap_compile_time_constant(__pyx_v_pos, __pyx_8genexpr1__pyx_v_arg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 779, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 779, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":780
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]             # <<<<<<<<<<<<<<
 *         if None not in args:
 *             return ExprNodes.TupleNode(pos, args=args)
 */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_arg);
      goto __pyx_L9_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_arg);
      goto __pyx_L1_error;
      __pyx_L9_exit_scope:;
    } /* exit inner scope */
    __pyx_v_args = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":781
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]
 *         if None not in args:             # <<<<<<<<<<<<<<
 *             return ExprNodes.TupleNode(pos, args=args)
 *         else:
 */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(Py_None, __pyx_v_args, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 781, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":782
 *                 for arg in value]
 *         if None not in args:
 *             return ExprNodes.TupleNode(pos, args=args)             # <<<<<<<<<<<<<<
 *         else:
 *             # error already reported
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 782, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":781
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]
 *         if None not in args:             # <<<<<<<<<<<<<<
 *             return ExprNodes.TupleNode(pos, args=args)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":785
 *         else:
 *             # error already reported
 *             return None             # <<<<<<<<<<<<<<
 *     elif not _IS_PY3 and isinstance(value, long):
 *         return ExprNodes.IntNode(pos, value=rep.rstrip('L'), constant_result=value)
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_None);
      __pyx_r = Py_None;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":778
 *         bvalue = bytes_literal(value, 'ascii')  # actually: unknown encoding, but BytesLiteral requires one
 *         return ExprNodes.BytesNode(pos, value=bvalue, constant_result=value)
 *     elif isinstance(value, tuple):             # <<<<<<<<<<<<<<
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]
 */
  }

  /* "Cython/Compiler/Parsing.py":786
 *             # error already reported
 *             return None
 *     elif not _IS_PY3 and isinstance(value, long):             # <<<<<<<<<<<<<<
 *         return ExprNodes.IntNode(pos, value=rep.rstrip('L'), constant_result=value)
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 */
  __pyx_t_2 = ((!(__pyx_v_6Cython_8Compiler_7Parsing__IS_PY3 != 0)) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_3 = __pyx_t_2;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_2 = PyLong_Check(__pyx_v_value); 
  __pyx_t_13 = (__pyx_t_2 != 0);
  __pyx_t_3 = __pyx_t_13;
  __pyx_L11_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":787
 *             return None
 *     elif not _IS_PY3 and isinstance(value, long):
 *         return ExprNodes.IntNode(pos, value=rep.rstrip('L'), constant_result=value)             # <<<<<<<<<<<<<<
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 *                % (value, value.__class__.__name__))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IntNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_rep, __pyx_n_s_rstrip); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_value, __pyx_t_7) < 0) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_constant_result, __pyx_v_value) < 0) __PYX_ERR(0, 787, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":786
 *             # error already reported
 *             return None
 *     elif not _IS_PY3 and isinstance(value, long):             # <<<<<<<<<<<<<<
 *         return ExprNodes.IntNode(pos, value=rep.rstrip('L'), constant_result=value)
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 */
  }

  /* "Cython/Compiler/Parsing.py":789
 *         return ExprNodes.IntNode(pos, value=rep.rstrip('L'), constant_result=value)
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 *                % (value, value.__class__.__name__))             # <<<<<<<<<<<<<<
 *     return None
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_class); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_value);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Invalid_type_for_compile_time_co, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
  __pyx_t_6 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_1 = NULL;
  __pyx_t_10 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_10 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_pos, __pyx_t_4};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_pos, __pyx_t_4};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_1) {
      __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
    }
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_10, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_10, __pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":790
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 *                % (value, value.__class__.__name__))
 *     return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_None);
  __pyx_r = Py_None;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":761
 * 
 * 
 * def wrap_compile_time_constant(pos, value):             # <<<<<<<<<<<<<<
 *     rep = repr(value)
 *     if value is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.wrap_compile_time_constant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_rep);
  __Pyx_XDECREF(__pyx_v_bvalue);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":793
 * 
 * 
 * def p_cat_string_literal(s):             # <<<<<<<<<<<<<<
 *     # A sequence of one or more adjacent string literals.
 *     # Returns (kind, bytes_value, unicode_value)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_bytes_value = NULL;
  PyObject *__pyx_v_unicode_value = NULL;
  PyObject *__pyx_v_bstrings = NULL;
  PyObject *__pyx_v_ustrings = NULL;
  PyObject *__pyx_v_positions = NULL;
  PyObject *__pyx_v_next_kind = NULL;
  PyObject *__pyx_v_next_bytes_value = NULL;
  PyObject *__pyx_v_next_unicode_value = NULL;
  PyObject *__pyx_v_u = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  __Pyx_RefNannySetupContext("p_cat_string_literal", 0);

  /* "Cython/Compiler/Parsing.py":797
 *     # Returns (kind, bytes_value, unicode_value)
 *     # where kind in ('b', 'c', 'u', 'f', '')
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     kind, bytes_value, unicode_value = p_string_literal(s)
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":798
 *     # where kind in ('b', 'c', 'u', 'f', '')
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s)             # <<<<<<<<<<<<<<
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':
 *         return kind, bytes_value, unicode_value
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 798, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 2); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(0, 798, __pyx_L1_error)
    __pyx_t_6 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 798, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_kind = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_bytes_value = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_unicode_value = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":799
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s)
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         return kind, bytes_value, unicode_value
 *     bstrings, ustrings, positions = [bytes_value], [unicode_value], [pos]
 */
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 799, __pyx_L1_error)
  if (!__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 799, __pyx_L1_error)
  __pyx_t_7 = __pyx_t_8;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":800
 *     kind, bytes_value, unicode_value = p_string_literal(s)
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':
 *         return kind, bytes_value, unicode_value             # <<<<<<<<<<<<<<
 *     bstrings, ustrings, positions = [bytes_value], [unicode_value], [pos]
 *     bytes_value = unicode_value = None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 800, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_kind);
    __Pyx_GIVEREF(__pyx_v_kind);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kind);
    __Pyx_INCREF(__pyx_v_bytes_value);
    __Pyx_GIVEREF(__pyx_v_bytes_value);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_bytes_value);
    __Pyx_INCREF(__pyx_v_unicode_value);
    __Pyx_GIVEREF(__pyx_v_unicode_value);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_unicode_value);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":799
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s)
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         return kind, bytes_value, unicode_value
 *     bstrings, ustrings, positions = [bytes_value], [unicode_value], [pos]
 */
  }

  /* "Cython/Compiler/Parsing.py":801
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':
 *         return kind, bytes_value, unicode_value
 *     bstrings, ustrings, positions = [bytes_value], [unicode_value], [pos]             # <<<<<<<<<<<<<<
 *     bytes_value = unicode_value = None
 *     while s.sy == 'BEGIN_STRING':
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_bytes_value);
  __Pyx_GIVEREF(__pyx_v_bytes_value);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_bytes_value);
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_unicode_value);
  __Pyx_GIVEREF(__pyx_v_unicode_value);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_unicode_value);
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __pyx_v_bstrings = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_ustrings = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_v_positions = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":802
 *         return kind, bytes_value, unicode_value
 *     bstrings, ustrings, positions = [bytes_value], [unicode_value], [pos]
 *     bytes_value = unicode_value = None             # <<<<<<<<<<<<<<
 *     while s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 */
  __Pyx_INCREF(Py_None);
  __Pyx_DECREF_SET(__pyx_v_bytes_value, Py_None);
  __Pyx_INCREF(Py_None);
  __Pyx_DECREF_SET(__pyx_v_unicode_value, Py_None);

  /* "Cython/Compiler/Parsing.py":803
 *     bstrings, ustrings, positions = [bytes_value], [unicode_value], [pos]
 *     bytes_value = unicode_value = None
 *     while s.sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         next_kind, next_bytes_value, next_unicode_value = p_string_literal(s)
 */
  while (1) {
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 803, __pyx_L1_error)
    if (!__pyx_t_7) break;

    /* "Cython/Compiler/Parsing.py":804
 *     bytes_value = unicode_value = None
 *     while s.sy == 'BEGIN_STRING':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         next_kind, next_bytes_value, next_unicode_value = p_string_literal(s)
 *         if next_kind == 'c':
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_pos, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":805
 *     while s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 *         next_kind, next_bytes_value, next_unicode_value = p_string_literal(s)             # <<<<<<<<<<<<<<
 *         if next_kind == 'c':
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
      PyObject* sequence = __pyx_t_3;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 3)) {
        if (size > 3) __Pyx_RaiseTooManyValuesError(3);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 805, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 2; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(0, 805, __pyx_L1_error)
      __pyx_t_6 = NULL;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L11_unpacking_done;
      __pyx_L10_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 805, __pyx_L1_error)
      __pyx_L11_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_next_kind, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_next_bytes_value, __pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_next_unicode_value, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":806
 *         pos = s.position()
 *         next_kind, next_bytes_value, next_unicode_value = p_string_literal(s)
 *         if next_kind == 'c':             # <<<<<<<<<<<<<<
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *             continue
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_next_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 806, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":807
 *         next_kind, next_bytes_value, next_unicode_value = p_string_literal(s)
 *         if next_kind == 'c':
 *             error(pos, "Cannot concatenate char literal with another string or char literal")             # <<<<<<<<<<<<<<
 *             continue
 *         elif next_kind != kind:
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_2 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_1 = NULL;
      __pyx_t_9 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_9 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_pos, __pyx_kp_u_Cannot_concatenate_char_literal};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 807, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_pos, __pyx_kp_u_Cannot_concatenate_char_literal};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 807, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 807, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__pyx_t_1) {
          __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_9, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Cannot_concatenate_char_literal);
        __Pyx_GIVEREF(__pyx_kp_u_Cannot_concatenate_char_literal);
        PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_9, __pyx_kp_u_Cannot_concatenate_char_literal);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 807, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":808
 *         if next_kind == 'c':
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *             continue             # <<<<<<<<<<<<<<
 *         elif next_kind != kind:
 *             # concatenating f strings and normal strings is allowed and leads to an f string
 */
      goto __pyx_L8_continue;

      /* "Cython/Compiler/Parsing.py":806
 *         pos = s.position()
 *         next_kind, next_bytes_value, next_unicode_value = p_string_literal(s)
 *         if next_kind == 'c':             # <<<<<<<<<<<<<<
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *             continue
 */
    }

    /* "Cython/Compiler/Parsing.py":809
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *             continue
 *         elif next_kind != kind:             # <<<<<<<<<<<<<<
 *             # concatenating f strings and normal strings is allowed and leads to an f string
 *             if set([kind, next_kind]) in (set(['f', 'u']), set(['f', ''])):
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_next_kind, __pyx_v_kind, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 809, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 809, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":811
 *         elif next_kind != kind:
 *             # concatenating f strings and normal strings is allowed and leads to an f string
 *             if set([kind, next_kind]) in (set(['f', 'u']), set(['f', ''])):             # <<<<<<<<<<<<<<
 *                 kind = 'f'
 *             else:
 */
      __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PySet_Add(__pyx_t_3, __pyx_n_u_f) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
      if (PySet_Add(__pyx_t_3, __pyx_n_u_u) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
      __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PySet_Add(__pyx_t_2, __pyx_n_u_f) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
      if (PySet_Add(__pyx_t_2, __pyx_kp_u__50) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
      __pyx_t_4 = PySet_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PySet_Add(__pyx_t_4, __pyx_v_kind) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
      if (PySet_Add(__pyx_t_4, __pyx_v_next_kind) < 0) __PYX_ERR(0, 811, __pyx_L1_error)
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L1_error)
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (!__pyx_t_8) {
      } else {
        __pyx_t_7 = __pyx_t_8;
        goto __pyx_L14_bool_binop_done;
      }
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L1_error)
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = __pyx_t_8;
      __pyx_L14_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_8 = (__pyx_t_7 != 0);
      if (__pyx_t_8) {

        /* "Cython/Compiler/Parsing.py":812
 *             # concatenating f strings and normal strings is allowed and leads to an f string
 *             if set([kind, next_kind]) in (set(['f', 'u']), set(['f', ''])):
 *                 kind = 'f'             # <<<<<<<<<<<<<<
 *             else:
 *                 error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %
 */
        __Pyx_INCREF(__pyx_n_u_f);
        __Pyx_DECREF_SET(__pyx_v_kind, __pyx_n_u_f);

        /* "Cython/Compiler/Parsing.py":811
 *         elif next_kind != kind:
 *             # concatenating f strings and normal strings is allowed and leads to an f string
 *             if set([kind, next_kind]) in (set(['f', 'u']), set(['f', ''])):             # <<<<<<<<<<<<<<
 *                 kind = 'f'
 *             else:
 */
        goto __pyx_L13;
      }

      /* "Cython/Compiler/Parsing.py":814
 *                 kind = 'f'
 *             else:
 *                 error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %             # <<<<<<<<<<<<<<
 *                       (kind, next_kind))
 *                 continue
 */
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":815
 *             else:
 *                 error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %
 *                       (kind, next_kind))             # <<<<<<<<<<<<<<
 *                 continue
 *         bstrings.append(next_bytes_value)
 */
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_kind);
        __Pyx_GIVEREF(__pyx_v_kind);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_kind);
        __Pyx_INCREF(__pyx_v_next_kind);
        __Pyx_GIVEREF(__pyx_v_next_kind);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_next_kind);

        /* "Cython/Compiler/Parsing.py":814
 *                 kind = 'f'
 *             else:
 *                 error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %             # <<<<<<<<<<<<<<
 *                       (kind, next_kind))
 *                 continue
 */
        __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Cannot_mix_string_literals_of_di, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 814, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_2 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_1 = NULL;
        __pyx_t_9 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
            __pyx_t_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_2)) {
          PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_pos, __pyx_t_4};
          __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 814, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
          PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_pos, __pyx_t_4};
          __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 814, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 814, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (__pyx_t_1) {
            __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
          }
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_v_pos);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_t_4);
          __pyx_t_4 = 0;
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 814, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":816
 *                 error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %
 *                       (kind, next_kind))
 *                 continue             # <<<<<<<<<<<<<<
 *         bstrings.append(next_bytes_value)
 *         ustrings.append(next_unicode_value)
 */
        goto __pyx_L8_continue;
      }
      __pyx_L13:;

      /* "Cython/Compiler/Parsing.py":809
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *             continue
 *         elif next_kind != kind:             # <<<<<<<<<<<<<<
 *             # concatenating f strings and normal strings is allowed and leads to an f string
 *             if set([kind, next_kind]) in (set(['f', 'u']), set(['f', ''])):
 */
    }

    /* "Cython/Compiler/Parsing.py":817
 *                       (kind, next_kind))
 *                 continue
 *         bstrings.append(next_bytes_value)             # <<<<<<<<<<<<<<
 *         ustrings.append(next_unicode_value)
 *         positions.append(pos)
 */
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_bstrings, __pyx_v_next_bytes_value); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 817, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":818
 *                 continue
 *         bstrings.append(next_bytes_value)
 *         ustrings.append(next_unicode_value)             # <<<<<<<<<<<<<<
 *         positions.append(pos)
 *     # join and rewrap the partial literals
 */
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ustrings, __pyx_v_next_unicode_value); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 818, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":819
 *         bstrings.append(next_bytes_value)
 *         ustrings.append(next_unicode_value)
 *         positions.append(pos)             # <<<<<<<<<<<<<<
 *     # join and rewrap the partial literals
 *     if kind in ('b', 'c', '') or kind == 'u' and None not in bstrings:
 */
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_positions, __pyx_v_pos); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 819, __pyx_L1_error)
    __pyx_L8_continue:;
  }

  /* "Cython/Compiler/Parsing.py":821
 *         positions.append(pos)
 *     # join and rewrap the partial literals
 *     if kind in ('b', 'c', '') or kind == 'u' and None not in bstrings:             # <<<<<<<<<<<<<<
 *         # Py3 enforced unicode literals are parsed as bytes/unicode combination
 *         bytes_value = bytes_literal(StringEncoding.join_bytes(bstrings), s.source_encoding)
 */
  __Pyx_INCREF(__pyx_v_kind);
  __pyx_t_3 = __pyx_v_kind;
  __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 821, __pyx_L1_error)
  if (!__pyx_t_11) {
  } else {
    __pyx_t_7 = __pyx_t_11;
    goto __pyx_L19_bool_binop_done;
  }
  __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 821, __pyx_L1_error)
  if (!__pyx_t_11) {
  } else {
    __pyx_t_7 = __pyx_t_11;
    goto __pyx_L19_bool_binop_done;
  }
  __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 821, __pyx_L1_error)
  __pyx_t_7 = __pyx_t_11;
  __pyx_L19_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_11 = (__pyx_t_7 != 0);
  if (!__pyx_t_11) {
  } else {
    __pyx_t_8 = __pyx_t_11;
    goto __pyx_L17_bool_binop_done;
  }
  __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 821, __pyx_L1_error)
  if (__pyx_t_11) {
  } else {
    __pyx_t_8 = __pyx_t_11;
    goto __pyx_L17_bool_binop_done;
  }
  __pyx_t_11 = (__Pyx_PySequence_ContainsTF(Py_None, __pyx_v_bstrings, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 821, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_11 != 0);
  __pyx_t_8 = __pyx_t_7;
  __pyx_L17_bool_binop_done:;
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":823
 *     if kind in ('b', 'c', '') or kind == 'u' and None not in bstrings:
 *         # Py3 enforced unicode literals are parsed as bytes/unicode combination
 *         bytes_value = bytes_literal(StringEncoding.join_bytes(bstrings), s.source_encoding)             # <<<<<<<<<<<<<<
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_join_bytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (!__pyx_t_4) {
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_bstrings); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_bstrings};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_bstrings};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_bstrings);
        __Pyx_GIVEREF(__pyx_v_bstrings);
        PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_bstrings);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_bytes_literal);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_bytes_literal; __pyx_t_1 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_v_s->source_encoding};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_v_s->source_encoding};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_9, __pyx_t_2);
      __Pyx_INCREF(__pyx_v_s->source_encoding);
      __Pyx_GIVEREF(__pyx_v_s->source_encoding);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_9, __pyx_v_s->source_encoding);
      __pyx_t_2 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_bytes_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":821
 *         positions.append(pos)
 *     # join and rewrap the partial literals
 *     if kind in ('b', 'c', '') or kind == 'u' and None not in bstrings:             # <<<<<<<<<<<<<<
 *         # Py3 enforced unicode literals are parsed as bytes/unicode combination
 *         bytes_value = bytes_literal(StringEncoding.join_bytes(bstrings), s.source_encoding)
 */
  }

  /* "Cython/Compiler/Parsing.py":824
 *         # Py3 enforced unicode literals are parsed as bytes/unicode combination
 *         bytes_value = bytes_literal(StringEncoding.join_bytes(bstrings), s.source_encoding)
 *     if kind in ('u', ''):             # <<<<<<<<<<<<<<
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))
 *     if kind == 'f':
 */
  __Pyx_INCREF(__pyx_v_kind);
  __pyx_t_3 = __pyx_v_kind;
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 824, __pyx_L1_error)
  if (!__pyx_t_7) {
  } else {
    __pyx_t_8 = __pyx_t_7;
    goto __pyx_L24_bool_binop_done;
  }
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 824, __pyx_L1_error)
  __pyx_t_8 = __pyx_t_7;
  __pyx_L24_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = (__pyx_t_8 != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":825
 *         bytes_value = bytes_literal(StringEncoding.join_bytes(bstrings), s.source_encoding)
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))             # <<<<<<<<<<<<<<
 *     if kind == 'f':
 *         unicode_value = []
 */
    { /* enter inner scope */
      PyObject *__pyx_8genexpr2__pyx_v_u = NULL;
      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 825, __pyx_L28_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __pyx_v_ustrings; __Pyx_INCREF(__pyx_t_4); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 825, __pyx_L28_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 825, __pyx_L28_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_u, __pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_7 = (__pyx_8genexpr2__pyx_v_u != Py_None);
        __pyx_t_8 = (__pyx_t_7 != 0);
        if (__pyx_t_8) {
          if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_8genexpr2__pyx_v_u))) __PYX_ERR(0, 825, __pyx_L28_error)
        }
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_u);
      goto __pyx_L32_exit_scope;
      __pyx_L28_error:;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_u);
      goto __pyx_L1_error;
      __pyx_L32_exit_scope:;
    } /* exit inner scope */
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__50, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (!__pyx_t_2) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL;
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_unicode_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":824
 *         # Py3 enforced unicode literals are parsed as bytes/unicode combination
 *         bytes_value = bytes_literal(StringEncoding.join_bytes(bstrings), s.source_encoding)
 *     if kind in ('u', ''):             # <<<<<<<<<<<<<<
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))
 *     if kind == 'f':
 */
  }

  /* "Cython/Compiler/Parsing.py":826
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))
 *     if kind == 'f':             # <<<<<<<<<<<<<<
 *         unicode_value = []
 *         for u, pos in zip(ustrings, positions):
 */
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_f, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 826, __pyx_L1_error)
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":827
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))
 *     if kind == 'f':
 *         unicode_value = []             # <<<<<<<<<<<<<<
 *         for u, pos in zip(ustrings, positions):
 *             if isinstance(u, list):
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_unicode_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":828
 *     if kind == 'f':
 *         unicode_value = []
 *         for u, pos in zip(ustrings, positions):             # <<<<<<<<<<<<<<
 *             if isinstance(u, list):
 *                 unicode_value += u
 */
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_ustrings);
    __Pyx_GIVEREF(__pyx_v_ustrings);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ustrings);
    __Pyx_INCREF(__pyx_v_positions);
    __Pyx_GIVEREF(__pyx_v_positions);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_positions);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
      __pyx_t_13 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_13)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_13(__pyx_t_3);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 828, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
        PyObject* sequence = __pyx_t_5;
        #if !CYTHON_COMPILING_IN_PYPY
        Py_ssize_t size = Py_SIZE(sequence);
        #else
        Py_ssize_t size = PySequence_Size(sequence);
        #endif
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 828, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        #else
        __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext;
        index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L36_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L36_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
        __pyx_t_6 = NULL;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L37_unpacking_done;
        __pyx_L36_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_6 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 828, __pyx_L1_error)
        __pyx_L37_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_u, __pyx_t_1);
      __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_pos, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":829
 *         unicode_value = []
 *         for u, pos in zip(ustrings, positions):
 *             if isinstance(u, list):             # <<<<<<<<<<<<<<
 *                 unicode_value += u
 *             else:
 */
      __pyx_t_8 = PyList_Check(__pyx_v_u); 
      __pyx_t_7 = (__pyx_t_8 != 0);
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":830
 *         for u, pos in zip(ustrings, positions):
 *             if isinstance(u, list):
 *                 unicode_value += u             # <<<<<<<<<<<<<<
 *             else:
 *                 # non-f-string concatenated into the f-string
 */
        __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_unicode_value, __pyx_v_u); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF_SET(__pyx_v_unicode_value, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":829
 *         unicode_value = []
 *         for u, pos in zip(ustrings, positions):
 *             if isinstance(u, list):             # <<<<<<<<<<<<<<
 *                 unicode_value += u
 *             else:
 */
        goto __pyx_L38;
      }

      /* "Cython/Compiler/Parsing.py":833
 *             else:
 *                 # non-f-string concatenated into the f-string
 *                 unicode_value.append(ExprNodes.UnicodeNode(pos, value=EncodedString(u)))             # <<<<<<<<<<<<<<
 *     return kind, bytes_value, unicode_value
 * 
 */
      /*else*/ {
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
        __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
        __pyx_t_14 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_15 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_15)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_15);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
          }
        }
        if (!__pyx_t_15) {
          __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_u); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[2] = {__pyx_t_15, __pyx_v_u};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_GOTREF(__pyx_t_2);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[2] = {__pyx_t_15, __pyx_v_u};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_GOTREF(__pyx_t_2);
          } else
          #endif
          {
            __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 833, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15); __pyx_t_15 = NULL;
            __Pyx_INCREF(__pyx_v_u);
            __Pyx_GIVEREF(__pyx_v_u);
            PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_v_u);
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_t_2) < 0) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_unicode_value, __pyx_t_2); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_L38:;

      /* "Cython/Compiler/Parsing.py":828
 *     if kind == 'f':
 *         unicode_value = []
 *         for u, pos in zip(ustrings, positions):             # <<<<<<<<<<<<<<
 *             if isinstance(u, list):
 *                 unicode_value += u
 */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":826
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString(u''.join([u for u in ustrings if u is not None]))
 *     if kind == 'f':             # <<<<<<<<<<<<<<
 *         unicode_value = []
 *         for u, pos in zip(ustrings, positions):
 */
  }

  /* "Cython/Compiler/Parsing.py":834
 *                 # non-f-string concatenated into the f-string
 *                 unicode_value.append(ExprNodes.UnicodeNode(pos, value=EncodedString(u)))
 *     return kind, bytes_value, unicode_value             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_kind);
  __Pyx_GIVEREF(__pyx_v_kind);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_kind);
  __Pyx_INCREF(__pyx_v_bytes_value);
  __Pyx_GIVEREF(__pyx_v_bytes_value);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_bytes_value);
  __Pyx_INCREF(__pyx_v_unicode_value);
  __Pyx_GIVEREF(__pyx_v_unicode_value);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_unicode_value);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":793
 * 
 * 
 * def p_cat_string_literal(s):             # <<<<<<<<<<<<<<
 *     # A sequence of one or more adjacent string literals.
 *     # Returns (kind, bytes_value, unicode_value)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cat_string_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_bytes_value);
  __Pyx_XDECREF(__pyx_v_unicode_value);
  __Pyx_XDECREF(__pyx_v_bstrings);
  __Pyx_XDECREF(__pyx_v_ustrings);
  __Pyx_XDECREF(__pyx_v_positions);
  __Pyx_XDECREF(__pyx_v_next_kind);
  __Pyx_XDECREF(__pyx_v_next_bytes_value);
  __Pyx_XDECREF(__pyx_v_next_unicode_value);
  __Pyx_XDECREF(__pyx_v_u);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":837
 * 
 * 
 * def p_opt_string_literal(s, required_type='u'):             # <<<<<<<<<<<<<<
 *     if s.sy != 'BEGIN_STRING':
 *         return None
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_opt_string_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_opt_string_literal *__pyx_optional_args) {
  PyObject *__pyx_v_required_type = ((PyObject *)__pyx_n_u_u);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_bytes_value = NULL;
  PyObject *__pyx_v_unicode_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_t_9;
  __Pyx_RefNannySetupContext("p_opt_string_literal", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_required_type = __pyx_optional_args->required_type;
    }
  }

  /* "Cython/Compiler/Parsing.py":838
 * 
 * def p_opt_string_literal(s, required_type='u'):
 *     if s.sy != 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         return None
 *     pos = s.position()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 838, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":839
 * def p_opt_string_literal(s, required_type='u'):
 *     if s.sy != 'BEGIN_STRING':
 *         return None             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":838
 * 
 * def p_opt_string_literal(s, required_type='u'):
 *     if s.sy != 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         return None
 *     pos = s.position()
 */
  }

  /* "Cython/Compiler/Parsing.py":840
 *     if s.sy != 'BEGIN_STRING':
 *         return None
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *     if required_type == 'u':
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_pos = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":841
 *         return None
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)             # <<<<<<<<<<<<<<
 *     if required_type == 'u':
 *         if kind == 'f':
 */
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.kind_override = __pyx_v_required_type;
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
    PyObject* sequence = __pyx_t_2;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 841, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
    }
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
    index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 841, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L5_unpacking_done;
    __pyx_L4_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 841, __pyx_L1_error)
    __pyx_L5_unpacking_done:;
  }
  __pyx_v_kind = __pyx_t_4;
  __pyx_t_4 = 0;
  __pyx_v_bytes_value = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_unicode_value = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":842
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *     if required_type == 'u':             # <<<<<<<<<<<<<<
 *         if kind == 'f':
 *             s.error("f-string not allowed here", pos)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_required_type, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":843
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *     if required_type == 'u':
 *         if kind == 'f':             # <<<<<<<<<<<<<<
 *             s.error("f-string not allowed here", pos)
 *         return unicode_value
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_f, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 843, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":844
 *     if required_type == 'u':
 *         if kind == 'f':
 *             s.error("f-string not allowed here", pos)             # <<<<<<<<<<<<<<
 *         return unicode_value
 *     elif required_type == 'b':
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      __pyx_t_9 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_9 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_u_f_string_not_allowed_here, __pyx_v_pos};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_u_f_string_not_allowed_here, __pyx_v_pos};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_kp_u_f_string_not_allowed_here);
        __Pyx_GIVEREF(__pyx_kp_u_f_string_not_allowed_here);
        PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_9, __pyx_kp_u_f_string_not_allowed_here);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_9, __pyx_v_pos);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":843
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *     if required_type == 'u':
 *         if kind == 'f':             # <<<<<<<<<<<<<<
 *             s.error("f-string not allowed here", pos)
 *         return unicode_value
 */
    }

    /* "Cython/Compiler/Parsing.py":845
 *         if kind == 'f':
 *             s.error("f-string not allowed here", pos)
 *         return unicode_value             # <<<<<<<<<<<<<<
 *     elif required_type == 'b':
 *         return bytes_value
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_unicode_value);
    __pyx_r = __pyx_v_unicode_value;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":842
 *     pos = s.position()
 *     kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *     if required_type == 'u':             # <<<<<<<<<<<<<<
 *         if kind == 'f':
 *             s.error("f-string not allowed here", pos)
 */
  }

  /* "Cython/Compiler/Parsing.py":846
 *             s.error("f-string not allowed here", pos)
 *         return unicode_value
 *     elif required_type == 'b':             # <<<<<<<<<<<<<<
 *         return bytes_value
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_required_type, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 846, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":847
 *         return unicode_value
 *     elif required_type == 'b':
 *         return bytes_value             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("internal parser configuration error")
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_bytes_value);
    __pyx_r = __pyx_v_bytes_value;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":846
 *             s.error("f-string not allowed here", pos)
 *         return unicode_value
 *     elif required_type == 'b':             # <<<<<<<<<<<<<<
 *         return bytes_value
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":849
 *         return bytes_value
 *     else:
 *         s.error("internal parser configuration error")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }

  /* "Cython/Compiler/Parsing.py":837
 * 
 * 
 * def p_opt_string_literal(s, required_type='u'):             # <<<<<<<<<<<<<<
 *     if s.sy != 'BEGIN_STRING':
 *         return None
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_opt_string_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_bytes_value);
  __Pyx_XDECREF(__pyx_v_unicode_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":852
 * 
 * 
 * def check_for_non_ascii_characters(string):             # <<<<<<<<<<<<<<
 *     for c in string:
 *         if c >= u'\x80':
 */

static int __pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(PyObject *__pyx_v_string) {
  Py_UCS4 __pyx_v_c;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  void *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("check_for_non_ascii_characters", 0);

  /* "Cython/Compiler/Parsing.py":853
 * 
 * def check_for_non_ascii_characters(string):
 *     for c in string:             # <<<<<<<<<<<<<<
 *         if c >= u'\x80':
 *             return True
 */
  if (unlikely(__pyx_v_string == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
    __PYX_ERR(0, 853, __pyx_L1_error)
  }
  __Pyx_INCREF(__pyx_v_string);
  __pyx_t_1 = __pyx_v_string;
  __pyx_t_6 = __Pyx_init_unicode_iteration(__pyx_t_1, (&__pyx_t_3), (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 853, __pyx_L1_error)
  for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_3; __pyx_t_7++) {
    __pyx_t_2 = __pyx_t_7;
    __pyx_v_c = __Pyx_PyUnicode_READ(__pyx_t_5, __pyx_t_4, __pyx_t_2);

    /* "Cython/Compiler/Parsing.py":854
 * def check_for_non_ascii_characters(string):
 *     for c in string:
 *         if c >= u'\x80':             # <<<<<<<<<<<<<<
 *             return True
 *     return False
 */
    __pyx_t_8 = ((__pyx_v_c >= 0x80) != 0);
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":855
 *     for c in string:
 *         if c >= u'\x80':
 *             return True             # <<<<<<<<<<<<<<
 *     return False
 * 
 */
      __pyx_r = 1;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":854
 * def check_for_non_ascii_characters(string):
 *     for c in string:
 *         if c >= u'\x80':             # <<<<<<<<<<<<<<
 *             return True
 *     return False
 */
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":856
 *         if c >= u'\x80':
 *             return True
 *     return False             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":852
 * 
 * 
 * def check_for_non_ascii_characters(string):             # <<<<<<<<<<<<<<
 *     for c in string:
 *         if c >= u'\x80':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("Cython.Compiler.Parsing.check_for_non_ascii_characters", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":859
 * 
 * 
 * def p_string_literal(s, kind_override=None):             # <<<<<<<<<<<<<<
 *     # A single string or char literal.  Returns (kind, bvalue, uvalue)
 *     # where kind in ('b', 'c', 'u', 'f', '').  The 'bvalue' is the source
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal *__pyx_optional_args) {
  PyObject *__pyx_v_kind_override = ((PyObject *)Py_None);
  PyObject *__pyx_v_systr = 0;
  int __pyx_v_is_python3_source;
  int __pyx_v_is_raw;
  PyObject *__pyx_v_pos = NULL;
  int __pyx_v_has_non_ascii_literal_characters;
  PyObject *__pyx_v_kind_string = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_chars = NULL;
  PyObject *__pyx_v_sy = NULL;
  Py_UCS4 __pyx_v_c;
  PyObject *__pyx_v_chrval = NULL;
  PyObject *__pyx_v_unicode_value = NULL;
  PyObject *__pyx_v_bytes_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  Py_UCS4 __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  long __pyx_t_16;
  int __pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *(*__pyx_t_21)(PyObject *);
  __Pyx_RefNannySetupContext("p_string_literal", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_kind_override = __pyx_optional_args->kind_override;
    }
  }

  /* "Cython/Compiler/Parsing.py":869
 * 
 *     # s.sy == 'BEGIN_STRING'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     is_raw = False
 *     is_python3_source = s.context.language_level >= 3
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":870
 *     # s.sy == 'BEGIN_STRING'
 *     pos = s.position()
 *     is_raw = False             # <<<<<<<<<<<<<<
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ascii_literal_characters = False
 */
  __pyx_v_is_raw = 0;

  /* "Cython/Compiler/Parsing.py":871
 *     pos = s.position()
 *     is_raw = False
 *     is_python3_source = s.context.language_level >= 3             # <<<<<<<<<<<<<<
 *     has_non_ascii_literal_characters = False
 *     kind_string = s.systring.rstrip('"\'').lower()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_is_python3_source = __pyx_t_3;

  /* "Cython/Compiler/Parsing.py":872
 *     is_raw = False
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ascii_literal_characters = False             # <<<<<<<<<<<<<<
 *     kind_string = s.systring.rstrip('"\'').lower()
 *     if len(set(kind_string)) != len(kind_string):
 */
  __pyx_v_has_non_ascii_literal_characters = 0;

  /* "Cython/Compiler/Parsing.py":873
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ascii_literal_characters = False
 *     kind_string = s.systring.rstrip('"\'').lower()             # <<<<<<<<<<<<<<
 *     if len(set(kind_string)) != len(kind_string):
 *         s.error('Duplicate string prefix character')
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->systring, __pyx_n_s_rstrip); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_lower); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  if (__pyx_t_4) {
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 873, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 873, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_kind_string = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":874
 *     has_non_ascii_literal_characters = False
 *     kind_string = s.systring.rstrip('"\'').lower()
 *     if len(set(kind_string)) != len(kind_string):             # <<<<<<<<<<<<<<
 *         s.error('Duplicate string prefix character')
 *     if 'b' in kind_string and 'u' in kind_string:
 */
  __pyx_t_2 = PySet_New(__pyx_v_kind_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PySet_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = PyObject_Length(__pyx_v_kind_string); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_5 != __pyx_t_6) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":875
 *     kind_string = s.systring.rstrip('"\'').lower()
 *     if len(set(kind_string)) != len(kind_string):
 *         s.error('Duplicate string prefix character')             # <<<<<<<<<<<<<<
 *     if 'b' in kind_string and 'u' in kind_string:
 *         s.error('String prefixes b and u cannot be combined')
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":874
 *     has_non_ascii_literal_characters = False
 *     kind_string = s.systring.rstrip('"\'').lower()
 *     if len(set(kind_string)) != len(kind_string):             # <<<<<<<<<<<<<<
 *         s.error('Duplicate string prefix character')
 *     if 'b' in kind_string and 'u' in kind_string:
 */
  }

  /* "Cython/Compiler/Parsing.py":876
 *     if len(set(kind_string)) != len(kind_string):
 *         s.error('Duplicate string prefix character')
 *     if 'b' in kind_string and 'u' in kind_string:             # <<<<<<<<<<<<<<
 *         s.error('String prefixes b and u cannot be combined')
 *     if 'b' in kind_string and 'f' in kind_string:
 */
  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_b, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 876, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_3 = __pyx_t_8;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_u, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 876, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_3 = __pyx_t_7;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":877
 *         s.error('Duplicate string prefix character')
 *     if 'b' in kind_string and 'u' in kind_string:
 *         s.error('String prefixes b and u cannot be combined')             # <<<<<<<<<<<<<<
 *     if 'b' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes b and f cannot be combined')
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":876
 *     if len(set(kind_string)) != len(kind_string):
 *         s.error('Duplicate string prefix character')
 *     if 'b' in kind_string and 'u' in kind_string:             # <<<<<<<<<<<<<<
 *         s.error('String prefixes b and u cannot be combined')
 *     if 'b' in kind_string and 'f' in kind_string:
 */
  }

  /* "Cython/Compiler/Parsing.py":878
 *     if 'b' in kind_string and 'u' in kind_string:
 *         s.error('String prefixes b and u cannot be combined')
 *     if 'b' in kind_string and 'f' in kind_string:             # <<<<<<<<<<<<<<
 *         s.error('String prefixes b and f cannot be combined')
 *     if 'u' in kind_string and 'f' in kind_string:
 */
  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_b, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 878, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_3 = __pyx_t_8;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_f, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 878, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_3 = __pyx_t_7;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":879
 *         s.error('String prefixes b and u cannot be combined')
 *     if 'b' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes b and f cannot be combined')             # <<<<<<<<<<<<<<
 *     if 'u' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes u and f cannot be combined')
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 879, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 879, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":878
 *     if 'b' in kind_string and 'u' in kind_string:
 *         s.error('String prefixes b and u cannot be combined')
 *     if 'b' in kind_string and 'f' in kind_string:             # <<<<<<<<<<<<<<
 *         s.error('String prefixes b and f cannot be combined')
 *     if 'u' in kind_string and 'f' in kind_string:
 */
  }

  /* "Cython/Compiler/Parsing.py":880
 *     if 'b' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes b and f cannot be combined')
 *     if 'u' in kind_string and 'f' in kind_string:             # <<<<<<<<<<<<<<
 *         s.error('String prefixes u and f cannot be combined')
 * 
 */
  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_u, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 880, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_3 = __pyx_t_8;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_f, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 880, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_3 = __pyx_t_7;
  __pyx_L11_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":881
 *         s.error('String prefixes b and f cannot be combined')
 *     if 'u' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes u and f cannot be combined')             # <<<<<<<<<<<<<<
 * 
 *     is_raw = 'r' in kind_string
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":880
 *     if 'b' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes b and f cannot be combined')
 *     if 'u' in kind_string and 'f' in kind_string:             # <<<<<<<<<<<<<<
 *         s.error('String prefixes u and f cannot be combined')
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":883
 *         s.error('String prefixes u and f cannot be combined')
 * 
 *     is_raw = 'r' in kind_string             # <<<<<<<<<<<<<<
 * 
 *     if 'c' in kind_string:
 */
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_r, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 883, __pyx_L1_error)
  __pyx_v_is_raw = __pyx_t_3;

  /* "Cython/Compiler/Parsing.py":885
 *     is_raw = 'r' in kind_string
 * 
 *     if 'c' in kind_string:             # <<<<<<<<<<<<<<
 *         # this should never happen, since the lexer does not allow combining c
 *         # with other prefix characters
 */
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_c, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 885, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_3 != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":888
 *         # this should never happen, since the lexer does not allow combining c
 *         # with other prefix characters
 *         if len(kind_string) != 1:             # <<<<<<<<<<<<<<
 *             s.error('Invalid string prefix for character literal')
 *         kind = 'c'
 */
    __pyx_t_6 = PyObject_Length(__pyx_v_kind_string); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 888, __pyx_L1_error)
    __pyx_t_7 = ((__pyx_t_6 != 1) != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":889
 *         # with other prefix characters
 *         if len(kind_string) != 1:
 *             s.error('Invalid string prefix for character literal')             # <<<<<<<<<<<<<<
 *         kind = 'c'
 *     elif 'f' in kind_string:
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 889, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 889, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":888
 *         # this should never happen, since the lexer does not allow combining c
 *         # with other prefix characters
 *         if len(kind_string) != 1:             # <<<<<<<<<<<<<<
 *             s.error('Invalid string prefix for character literal')
 *         kind = 'c'
 */
    }

    /* "Cython/Compiler/Parsing.py":890
 *         if len(kind_string) != 1:
 *             s.error('Invalid string prefix for character literal')
 *         kind = 'c'             # <<<<<<<<<<<<<<
 *     elif 'f' in kind_string:
 *         kind = 'f'  # u is ignored
 */
    __Pyx_INCREF(__pyx_n_u_c);
    __pyx_v_kind = __pyx_n_u_c;

    /* "Cython/Compiler/Parsing.py":885
 *     is_raw = 'r' in kind_string
 * 
 *     if 'c' in kind_string:             # <<<<<<<<<<<<<<
 *         # this should never happen, since the lexer does not allow combining c
 *         # with other prefix characters
 */
    goto __pyx_L13;
  }

  /* "Cython/Compiler/Parsing.py":891
 *             s.error('Invalid string prefix for character literal')
 *         kind = 'c'
 *     elif 'f' in kind_string:             # <<<<<<<<<<<<<<
 *         kind = 'f'  # u is ignored
 *     elif 'b' in kind_string:
 */
  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_f, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 891, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_7 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":892
 *         kind = 'c'
 *     elif 'f' in kind_string:
 *         kind = 'f'  # u is ignored             # <<<<<<<<<<<<<<
 *     elif 'b' in kind_string:
 *         kind = 'b'
 */
    __Pyx_INCREF(__pyx_n_u_f);
    __pyx_v_kind = __pyx_n_u_f;

    /* "Cython/Compiler/Parsing.py":891
 *             s.error('Invalid string prefix for character literal')
 *         kind = 'c'
 *     elif 'f' in kind_string:             # <<<<<<<<<<<<<<
 *         kind = 'f'  # u is ignored
 *     elif 'b' in kind_string:
 */
    goto __pyx_L13;
  }

  /* "Cython/Compiler/Parsing.py":893
 *     elif 'f' in kind_string:
 *         kind = 'f'  # u is ignored
 *     elif 'b' in kind_string:             # <<<<<<<<<<<<<<
 *         kind = 'b'
 *     elif 'u' in kind_string:
 */
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_b, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 893, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_3 != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":894
 *         kind = 'f'  # u is ignored
 *     elif 'b' in kind_string:
 *         kind = 'b'             # <<<<<<<<<<<<<<
 *     elif 'u' in kind_string:
 *         kind = 'u'
 */
    __Pyx_INCREF(__pyx_n_u_b);
    __pyx_v_kind = __pyx_n_u_b;

    /* "Cython/Compiler/Parsing.py":893
 *     elif 'f' in kind_string:
 *         kind = 'f'  # u is ignored
 *     elif 'b' in kind_string:             # <<<<<<<<<<<<<<
 *         kind = 'b'
 *     elif 'u' in kind_string:
 */
    goto __pyx_L13;
  }

  /* "Cython/Compiler/Parsing.py":895
 *     elif 'b' in kind_string:
 *         kind = 'b'
 *     elif 'u' in kind_string:             # <<<<<<<<<<<<<<
 *         kind = 'u'
 *     else:
 */
  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_u, __pyx_v_kind_string, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 895, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_7 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":896
 *         kind = 'b'
 *     elif 'u' in kind_string:
 *         kind = 'u'             # <<<<<<<<<<<<<<
 *     else:
 *         kind = ''
 */
    __Pyx_INCREF(__pyx_n_u_u);
    __pyx_v_kind = __pyx_n_u_u;

    /* "Cython/Compiler/Parsing.py":895
 *     elif 'b' in kind_string:
 *         kind = 'b'
 *     elif 'u' in kind_string:             # <<<<<<<<<<<<<<
 *         kind = 'u'
 *     else:
 */
    goto __pyx_L13;
  }

  /* "Cython/Compiler/Parsing.py":898
 *         kind = 'u'
 *     else:
 *         kind = ''             # <<<<<<<<<<<<<<
 * 
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_kp_u__50);
    __pyx_v_kind = __pyx_kp_u__50;
  }
  __pyx_L13:;

  /* "Cython/Compiler/Parsing.py":900
 *         kind = ''
 * 
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:             # <<<<<<<<<<<<<<
 *         chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         kind = 'u'
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 900, __pyx_L1_error)
  if (__pyx_t_7) {
  } else {
    __pyx_t_3 = __pyx_t_7;
    goto __pyx_L16_bool_binop_done;
  }
  __pyx_t_7 = (__pyx_v_kind_override == Py_None);
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_3 = __pyx_t_8;
    goto __pyx_L16_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_n_s_unicode_literals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 900, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = (__pyx_t_8 != 0);
  __pyx_t_3 = __pyx_t_7;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":901
 * 
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:
 *         chars = StringEncoding.StrLiteralBuilder(s.source_encoding)             # <<<<<<<<<<<<<<
 *         kind = 'u'
 *     else:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_StrLiteralBuilder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    if (!__pyx_t_4) {
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_s->source_encoding); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 901, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_s->source_encoding};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 901, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_s->source_encoding};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 901, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 901, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_s->source_encoding);
        __Pyx_GIVEREF(__pyx_v_s->source_encoding);
        PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_s->source_encoding);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 901, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_chars = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":902
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:
 *         chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         kind = 'u'             # <<<<<<<<<<<<<<
 *     else:
 *         if kind_override is not None and kind_override in 'ub':
 */
    __Pyx_INCREF(__pyx_n_u_u);
    __Pyx_DECREF_SET(__pyx_v_kind, __pyx_n_u_u);

    /* "Cython/Compiler/Parsing.py":900
 *         kind = ''
 * 
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:             # <<<<<<<<<<<<<<
 *         chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         kind = 'u'
 */
    goto __pyx_L15;
  }

  /* "Cython/Compiler/Parsing.py":904
 *         kind = 'u'
 *     else:
 *         if kind_override is not None and kind_override in 'ub':             # <<<<<<<<<<<<<<
 *             kind = kind_override
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later
 */
  /*else*/ {
    __pyx_t_7 = (__pyx_v_kind_override != Py_None);
    __pyx_t_8 = (__pyx_t_7 != 0);
    if (__pyx_t_8) {
    } else {
      __pyx_t_3 = __pyx_t_8;
      goto __pyx_L20_bool_binop_done;
    }
    __pyx_t_8 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_kind_override, __pyx_n_u_ub, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 904, __pyx_L1_error)
    __pyx_t_7 = (__pyx_t_8 != 0);
    __pyx_t_3 = __pyx_t_7;
    __pyx_L20_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":905
 *     else:
 *         if kind_override is not None and kind_override in 'ub':
 *             kind = kind_override             # <<<<<<<<<<<<<<
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 */
      __Pyx_INCREF(__pyx_v_kind_override);
      __Pyx_DECREF_SET(__pyx_v_kind, __pyx_v_kind_override);

      /* "Cython/Compiler/Parsing.py":904
 *         kind = 'u'
 *     else:
 *         if kind_override is not None and kind_override in 'ub':             # <<<<<<<<<<<<<<
 *             kind = kind_override
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later
 */
    }

    /* "Cython/Compiler/Parsing.py":906
 *         if kind_override is not None and kind_override in 'ub':
 *             kind = kind_override
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later             # <<<<<<<<<<<<<<
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':
 */
    __Pyx_INCREF(__pyx_v_kind);
    __pyx_t_2 = __pyx_v_kind;
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 906, __pyx_L1_error)
    if (!__pyx_t_7) {
    } else {
      __pyx_t_3 = __pyx_t_7;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_f, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 906, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_7;
    __pyx_L23_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = (__pyx_t_3 != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":907
 *             kind = kind_override
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later
 *             chars = StringEncoding.UnicodeLiteralBuilder()             # <<<<<<<<<<<<<<
 *         elif kind == '':
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_UnicodeLiteralBuilder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (__pyx_t_9) {
        __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      } else {
        __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
      }
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_chars = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":906
 *         if kind_override is not None and kind_override in 'ub':
 *             kind = kind_override
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later             # <<<<<<<<<<<<<<
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':
 */
      goto __pyx_L22;
    }

    /* "Cython/Compiler/Parsing.py":908
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':             # <<<<<<<<<<<<<<
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         else:
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 908, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":909
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)             # <<<<<<<<<<<<<<
 *         else:
 *             chars = StringEncoding.BytesLiteralBuilder(s.source_encoding)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_StrLiteralBuilder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_9) {
        __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_s->source_encoding); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_s->source_encoding};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_s->source_encoding};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 909, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL;
          __Pyx_INCREF(__pyx_v_s->source_encoding);
          __Pyx_GIVEREF(__pyx_v_s->source_encoding);
          PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_s->source_encoding);
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_chars = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":908
 *         if kind in ('u', 'f'):  # f-strings are scanned exactly like Unicode literals, but are parsed further later
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':             # <<<<<<<<<<<<<<
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         else:
 */
      goto __pyx_L22;
    }

    /* "Cython/Compiler/Parsing.py":911
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         else:
 *             chars = StringEncoding.BytesLiteralBuilder(s.source_encoding)             # <<<<<<<<<<<<<<
 * 
 *     while 1:
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_BytesLiteralBuilder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_4) {
        __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_s->source_encoding); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_s->source_encoding};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_s->source_encoding};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 911, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL;
          __Pyx_INCREF(__pyx_v_s->source_encoding);
          __Pyx_GIVEREF(__pyx_v_s->source_encoding);
          PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_s->source_encoding);
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_chars = __pyx_t_2;
      __pyx_t_2 = 0;
    }
    __pyx_L22:;
  }
  __pyx_L15:;

  /* "Cython/Compiler/Parsing.py":913
 *             chars = StringEncoding.BytesLiteralBuilder(s.source_encoding)
 * 
 *     while 1:             # <<<<<<<<<<<<<<
 *         s.next()
 *         sy = s.sy
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":914
 * 
 *     while 1:
 *         s.next()             # <<<<<<<<<<<<<<
 *         sy = s.sy
 *         systr = s.systring
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 914, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":915
 *     while 1:
 *         s.next()
 *         sy = s.sy             # <<<<<<<<<<<<<<
 *         systr = s.systring
 *         # print "p_string_literal: sy =", sy, repr(s.systring) ###
 */
    __pyx_t_2 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_sy, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":916
 *         s.next()
 *         sy = s.sy
 *         systr = s.systring             # <<<<<<<<<<<<<<
 *         # print "p_string_literal: sy =", sy, repr(s.systring) ###
 *         if sy == 'CHARS':
 */
    if (!(likely(PyUnicode_CheckExact(__pyx_v_s->systring))||((__pyx_v_s->systring) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_s->systring)->tp_name), 0))) __PYX_ERR(0, 916, __pyx_L1_error)
    __pyx_t_2 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_systr, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":918
 *         systr = s.systring
 *         # print "p_string_literal: sy =", sy, repr(s.systring) ###
 *         if sy == 'CHARS':             # <<<<<<<<<<<<<<
 *             chars.append(systr)
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_CHARS, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 918, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":919
 *         # print "p_string_literal: sy =", sy, repr(s.systring) ###
 *         if sy == 'CHARS':
 *             chars.append(systr)             # <<<<<<<<<<<<<<
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):
 *                 has_non_ascii_literal_characters = True
 */
      __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_v_systr); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 919, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":920
 *         if sy == 'CHARS':
 *             chars.append(systr)
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):             # <<<<<<<<<<<<<<
 *                 has_non_ascii_literal_characters = True
 *         elif sy == 'ESCAPE':
 */
      __pyx_t_3 = (__pyx_v_is_python3_source != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_7 = __pyx_t_3;
        goto __pyx_L29_bool_binop_done;
      }
      __pyx_t_3 = ((!(__pyx_v_has_non_ascii_literal_characters != 0)) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_7 = __pyx_t_3;
        goto __pyx_L29_bool_binop_done;
      }
      __pyx_t_3 = (__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(__pyx_v_systr) != 0);
      __pyx_t_7 = __pyx_t_3;
      __pyx_L29_bool_binop_done:;
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":921
 *             chars.append(systr)
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):
 *                 has_non_ascii_literal_characters = True             # <<<<<<<<<<<<<<
 *         elif sy == 'ESCAPE':
 *             if is_raw:
 */
        __pyx_v_has_non_ascii_literal_characters = 1;

        /* "Cython/Compiler/Parsing.py":920
 *         if sy == 'CHARS':
 *             chars.append(systr)
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):             # <<<<<<<<<<<<<<
 *                 has_non_ascii_literal_characters = True
 *         elif sy == 'ESCAPE':
 */
      }

      /* "Cython/Compiler/Parsing.py":918
 *         systr = s.systring
 *         # print "p_string_literal: sy =", sy, repr(s.systring) ###
 *         if sy == 'CHARS':             # <<<<<<<<<<<<<<
 *             chars.append(systr)
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):
 */
      goto __pyx_L27;
    }

    /* "Cython/Compiler/Parsing.py":922
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):
 *                 has_non_ascii_literal_characters = True
 *         elif sy == 'ESCAPE':             # <<<<<<<<<<<<<<
 *             if is_raw:
 *                 chars.append(systr)
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_ESCAPE, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 922, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":923
 *                 has_non_ascii_literal_characters = True
 *         elif sy == 'ESCAPE':
 *             if is_raw:             # <<<<<<<<<<<<<<
 *                 chars.append(systr)
 *                 if is_python3_source and not has_non_ascii_literal_characters \
 */
      __pyx_t_7 = (__pyx_v_is_raw != 0);
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":924
 *         elif sy == 'ESCAPE':
 *             if is_raw:
 *                 chars.append(systr)             # <<<<<<<<<<<<<<
 *                 if is_python3_source and not has_non_ascii_literal_characters \
 *                        and check_for_non_ascii_characters(systr):
 */
        __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_v_systr); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 924, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":925
 *             if is_raw:
 *                 chars.append(systr)
 *                 if is_python3_source and not has_non_ascii_literal_characters \             # <<<<<<<<<<<<<<
 *                        and check_for_non_ascii_characters(systr):
 *                     has_non_ascii_literal_characters = True
 */
        __pyx_t_3 = (__pyx_v_is_python3_source != 0);
        if (__pyx_t_3) {
        } else {
          __pyx_t_7 = __pyx_t_3;
          goto __pyx_L34_bool_binop_done;
        }

        /* "Cython/Compiler/Parsing.py":926
 *                 chars.append(systr)
 *                 if is_python3_source and not has_non_ascii_literal_characters \
 *                        and check_for_non_ascii_characters(systr):             # <<<<<<<<<<<<<<
 *                     has_non_ascii_literal_characters = True
 *             else:
 */
        __pyx_t_3 = ((!(__pyx_v_has_non_ascii_literal_characters != 0)) != 0);
        if (__pyx_t_3) {
        } else {
          __pyx_t_7 = __pyx_t_3;
          goto __pyx_L34_bool_binop_done;
        }
        __pyx_t_3 = (__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(__pyx_v_systr) != 0);
        __pyx_t_7 = __pyx_t_3;
        __pyx_L34_bool_binop_done:;

        /* "Cython/Compiler/Parsing.py":925
 *             if is_raw:
 *                 chars.append(systr)
 *                 if is_python3_source and not has_non_ascii_literal_characters \             # <<<<<<<<<<<<<<
 *                        and check_for_non_ascii_characters(systr):
 *                     has_non_ascii_literal_characters = True
 */
        if (__pyx_t_7) {

          /* "Cython/Compiler/Parsing.py":927
 *                 if is_python3_source and not has_non_ascii_literal_characters \
 *                        and check_for_non_ascii_characters(systr):
 *                     has_non_ascii_literal_characters = True             # <<<<<<<<<<<<<<
 *             else:
 *                 c = systr[1]
 */
          __pyx_v_has_non_ascii_literal_characters = 1;

          /* "Cython/Compiler/Parsing.py":925
 *             if is_raw:
 *                 chars.append(systr)
 *                 if is_python3_source and not has_non_ascii_literal_characters \             # <<<<<<<<<<<<<<
 *                        and check_for_non_ascii_characters(systr):
 *                     has_non_ascii_literal_characters = True
 */
        }

        /* "Cython/Compiler/Parsing.py":923
 *                 has_non_ascii_literal_characters = True
 *         elif sy == 'ESCAPE':
 *             if is_raw:             # <<<<<<<<<<<<<<
 *                 chars.append(systr)
 *                 if is_python3_source and not has_non_ascii_literal_characters \
 */
        goto __pyx_L32;
      }

      /* "Cython/Compiler/Parsing.py":929
 *                     has_non_ascii_literal_characters = True
 *             else:
 *                 c = systr[1]             # <<<<<<<<<<<<<<
 *                 if c in u"01234567":
 *                     chars.append_charval( int(systr[1:], 8) )
 */
      /*else*/ {
        __pyx_t_11 = __Pyx_GetItemInt_Unicode(__pyx_v_systr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == (Py_UCS4)-1)) __PYX_ERR(0, 929, __pyx_L1_error)
        __pyx_v_c = __pyx_t_11;

        /* "Cython/Compiler/Parsing.py":930
 *             else:
 *                 c = systr[1]
 *                 if c in u"01234567":             # <<<<<<<<<<<<<<
 *                     chars.append_charval( int(systr[1:], 8) )
 *                 elif c in u"'\"\\":
 */
        switch (__pyx_v_c) {
          case 48:
          case 49:
          case 50:
          case 51:
          case 52:
          case 53:
          case 54:
          case 55:
          __pyx_t_7 = 1;
          break;
          default:
          __pyx_t_7 = 0;
          break;
        }
        __pyx_t_3 = (__pyx_t_7 != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":931
 *                 c = systr[1]
 *                 if c in u"01234567":
 *                     chars.append_charval( int(systr[1:], 8) )             # <<<<<<<<<<<<<<
 *                 elif c in u"'\"\\":
 *                     chars.append(c)
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_append_charval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 931, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_systr == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 931, __pyx_L1_error)
          }
          __pyx_t_9 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 931, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 931, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9);
          __Pyx_INCREF(__pyx_int_8);
          __Pyx_GIVEREF(__pyx_int_8);
          PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_8);
          __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 931, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          if (!__pyx_t_4) {
            __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 931, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GOTREF(__pyx_t_2);
          } else {
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_1)) {
              PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_9};
              __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 931, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
              PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_9};
              __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 931, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            } else
            #endif
            {
              __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
              __Pyx_GIVEREF(__pyx_t_9);
              PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_9);
              __pyx_t_9 = 0;
              __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            }
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "Cython/Compiler/Parsing.py":930
 *             else:
 *                 c = systr[1]
 *                 if c in u"01234567":             # <<<<<<<<<<<<<<
 *                     chars.append_charval( int(systr[1:], 8) )
 *                 elif c in u"'\"\\":
 */
          goto __pyx_L37;
        }

        /* "Cython/Compiler/Parsing.py":932
 *                 if c in u"01234567":
 *                     chars.append_charval( int(systr[1:], 8) )
 *                 elif c in u"'\"\\":             # <<<<<<<<<<<<<<
 *                     chars.append(c)
 *                 elif c in u"abfnrtv":
 */
        switch (__pyx_v_c) {
          case 34:
          case 39:
          case 92:
          __pyx_t_3 = 1;
          break;
          default:
          __pyx_t_3 = 0;
          break;
        }
        __pyx_t_7 = (__pyx_t_3 != 0);
        if (__pyx_t_7) {

          /* "Cython/Compiler/Parsing.py":933
 *                     chars.append_charval( int(systr[1:], 8) )
 *                 elif c in u"'\"\\":
 *                     chars.append(c)             # <<<<<<<<<<<<<<
 *                 elif c in u"abfnrtv":
 *                     chars.append(
 */
          __pyx_t_2 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 933, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_t_2); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 933, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "Cython/Compiler/Parsing.py":932
 *                 if c in u"01234567":
 *                     chars.append_charval( int(systr[1:], 8) )
 *                 elif c in u"'\"\\":             # <<<<<<<<<<<<<<
 *                     chars.append(c)
 *                 elif c in u"abfnrtv":
 */
          goto __pyx_L37;
        }

        /* "Cython/Compiler/Parsing.py":934
 *                 elif c in u"'\"\\":
 *                     chars.append(c)
 *                 elif c in u"abfnrtv":             # <<<<<<<<<<<<<<
 *                     chars.append(
 *                         StringEncoding.char_from_escape_sequence(systr))
 */
        switch (__pyx_v_c) {
          case 97:
          case 98:
          case 0x66:
          case 0x6E:
          case 0x72:
          case 0x74:
          case 0x76:
          __pyx_t_7 = 1;
          break;
          default:
          __pyx_t_7 = 0;
          break;
        }
        __pyx_t_3 = (__pyx_t_7 != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":936
 *                 elif c in u"abfnrtv":
 *                     chars.append(
 *                         StringEncoding.char_from_escape_sequence(systr))             # <<<<<<<<<<<<<<
 *                 elif c == u'\n':
 *                     pass
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_char_from_escape_sequence); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 936, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_12 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_12)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_12);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          if (!__pyx_t_12) {
            __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_systr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
          } else {
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_1)) {
              PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_systr};
              __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_GOTREF(__pyx_t_2);
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
              PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_systr};
              __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_GOTREF(__pyx_t_2);
            } else
            #endif
            {
              __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 936, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_12); __pyx_t_12 = NULL;
              __Pyx_INCREF(__pyx_v_systr);
              __Pyx_GIVEREF(__pyx_v_systr);
              PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_systr);
              __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            }
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":935
 *                     chars.append(c)
 *                 elif c in u"abfnrtv":
 *                     chars.append(             # <<<<<<<<<<<<<<
 *                         StringEncoding.char_from_escape_sequence(systr))
 *                 elif c == u'\n':
 */
          __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_t_2); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 935, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "Cython/Compiler/Parsing.py":934
 *                 elif c in u"'\"\\":
 *                     chars.append(c)
 *                 elif c in u"abfnrtv":             # <<<<<<<<<<<<<<
 *                     chars.append(
 *                         StringEncoding.char_from_escape_sequence(systr))
 */
          goto __pyx_L37;
        }

        /* "Cython/Compiler/Parsing.py":937
 *                     chars.append(
 *                         StringEncoding.char_from_escape_sequence(systr))
 *                 elif c == u'\n':             # <<<<<<<<<<<<<<
 *                     pass
 *                 elif c == u'x':   # \xXX
 */
        __pyx_t_3 = ((__pyx_v_c == 10) != 0);
        if (__pyx_t_3) {
          goto __pyx_L37;
        }

        /* "Cython/Compiler/Parsing.py":939
 *                 elif c == u'\n':
 *                     pass
 *                 elif c == u'x':   # \xXX             # <<<<<<<<<<<<<<
 *                     if len(systr) == 4:
 *                         chars.append_charval( int(systr[2:], 16) )
 */
        __pyx_t_3 = ((__pyx_v_c == 0x78) != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":940
 *                     pass
 *                 elif c == u'x':   # \xXX
 *                     if len(systr) == 4:             # <<<<<<<<<<<<<<
 *                         chars.append_charval( int(systr[2:], 16) )
 *                     else:
 */
          if (unlikely(__pyx_v_systr == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
            __PYX_ERR(0, 940, __pyx_L1_error)
          }
          __pyx_t_6 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_systr); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 940, __pyx_L1_error)
          __pyx_t_3 = ((__pyx_t_6 == 4) != 0);
          if (__pyx_t_3) {

            /* "Cython/Compiler/Parsing.py":941
 *                 elif c == u'x':   # \xXX
 *                     if len(systr) == 4:
 *                         chars.append_charval( int(systr[2:], 16) )             # <<<<<<<<<<<<<<
 *                     else:
 *                         s.error("Invalid hex escape '%s'" % systr,
 */
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_append_charval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 941, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            if (unlikely(__pyx_v_systr == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 941, __pyx_L1_error)
            }
            __pyx_t_9 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 941, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_GIVEREF(__pyx_t_9);
            PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9);
            __Pyx_INCREF(__pyx_int_16);
            __Pyx_GIVEREF(__pyx_int_16);
            PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_int_16);
            __pyx_t_9 = 0;
            __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = NULL;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_12)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_12);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
              }
            }
            if (!__pyx_t_12) {
              __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_GOTREF(__pyx_t_2);
            } else {
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_1)) {
                PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_t_9};
                __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
                PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_t_9};
                __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              } else
              #endif
              {
                __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 941, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12); __pyx_t_12 = NULL;
                __Pyx_GIVEREF(__pyx_t_9);
                PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_9);
                __pyx_t_9 = 0;
                __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              }
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "Cython/Compiler/Parsing.py":940
 *                     pass
 *                 elif c == u'x':   # \xXX
 *                     if len(systr) == 4:             # <<<<<<<<<<<<<<
 *                         chars.append_charval( int(systr[2:], 16) )
 *                     else:
 */
            goto __pyx_L38;
          }

          /* "Cython/Compiler/Parsing.py":943
 *                         chars.append_charval( int(systr[2:], 16) )
 *                     else:
 *                         s.error("Invalid hex escape '%s'" % systr,             # <<<<<<<<<<<<<<
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 */
          /*else*/ {
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Invalid_hex_escape_s, __pyx_v_systr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
            __pyx_t_1 = 0;

            /* "Cython/Compiler/Parsing.py":944
 *                     else:
 *                         s.error("Invalid hex escape '%s'" % systr,
 *                                 fatal=False)             # <<<<<<<<<<<<<<
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 *                     chrval = -1
 */
            __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 944, __pyx_L1_error)

            /* "Cython/Compiler/Parsing.py":943
 *                         chars.append_charval( int(systr[2:], 16) )
 *                     else:
 *                         s.error("Invalid hex escape '%s'" % systr,             # <<<<<<<<<<<<<<
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 */
            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 943, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __pyx_L38:;

          /* "Cython/Compiler/Parsing.py":939
 *                 elif c == u'\n':
 *                     pass
 *                 elif c == u'x':   # \xXX             # <<<<<<<<<<<<<<
 *                     if len(systr) == 4:
 *                         chars.append_charval( int(systr[2:], 16) )
 */
          goto __pyx_L37;
        }

        /* "Cython/Compiler/Parsing.py":945
 *                         s.error("Invalid hex escape '%s'" % systr,
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}             # <<<<<<<<<<<<<<
 *                     chrval = -1
 *                     if c == u'N':
 */
        switch (__pyx_v_c) {
          case 78:
          case 85:
          case 0x75:
          __pyx_t_7 = 1;
          break;
          default:
          __pyx_t_7 = 0;
          break;
        }
        __pyx_t_8 = (__pyx_t_7 != 0);
        if (__pyx_t_8) {
        } else {
          __pyx_t_3 = __pyx_t_8;
          goto __pyx_L39_bool_binop_done;
        }
        __Pyx_INCREF(__pyx_v_kind);
        __pyx_t_9 = __pyx_v_kind;
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 945, __pyx_L1_error)
        if (!__pyx_t_7) {
        } else {
          __pyx_t_8 = __pyx_t_7;
          goto __pyx_L41_bool_binop_done;
        }
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_f, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 945, __pyx_L1_error)
        if (!__pyx_t_7) {
        } else {
          __pyx_t_8 = __pyx_t_7;
          goto __pyx_L41_bool_binop_done;
        }
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 945, __pyx_L1_error)
        __pyx_t_8 = __pyx_t_7;
        __pyx_L41_bool_binop_done:;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_7 = (__pyx_t_8 != 0);
        __pyx_t_3 = __pyx_t_7;
        __pyx_L39_bool_binop_done:;
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":946
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 *                     chrval = -1             # <<<<<<<<<<<<<<
 *                     if c == u'N':
 *                         try:
 */
          __Pyx_INCREF(__pyx_int_neg_1);
          __Pyx_XDECREF_SET(__pyx_v_chrval, __pyx_int_neg_1);

          /* "Cython/Compiler/Parsing.py":947
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 *                     chrval = -1
 *                     if c == u'N':             # <<<<<<<<<<<<<<
 *                         try:
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 */
          __pyx_t_3 = ((__pyx_v_c == 78) != 0);
          if (__pyx_t_3) {

            /* "Cython/Compiler/Parsing.py":948
 *                     chrval = -1
 *                     if c == u'N':
 *                         try:             # <<<<<<<<<<<<<<
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:
 */
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_13);
              __Pyx_XGOTREF(__pyx_t_14);
              __Pyx_XGOTREF(__pyx_t_15);
              /*try:*/ {

                /* "Cython/Compiler/Parsing.py":949
 *                     if c == u'N':
 *                         try:
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))             # <<<<<<<<<<<<<<
 *                         except KeyError:
 *                             s.error("Unknown Unicode character name %s" %
 */
                if (unlikely(__pyx_v_systr == Py_None)) {
                  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                  __PYX_ERR(0, 949, __pyx_L45_error)
                }
                __pyx_t_1 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 3, -1L); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L45_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar);
                __pyx_t_4 = __pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar; __pyx_t_2 = NULL;
                if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
                  __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
                  if (likely(__pyx_t_2)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                    __Pyx_INCREF(__pyx_t_2);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_4, function);
                  }
                }
                if (!__pyx_t_2) {
                  __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 949, __pyx_L45_error)
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_GOTREF(__pyx_t_9);
                } else {
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_4)) {
                    PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_1};
                    __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 949, __pyx_L45_error)
                    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
                    PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_1};
                    __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 949, __pyx_L45_error)
                    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 949, __pyx_L45_error)
                    __Pyx_GOTREF(__pyx_t_12);
                    __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __pyx_t_2 = NULL;
                    __Pyx_GIVEREF(__pyx_t_1);
                    PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_1);
                    __pyx_t_1 = 0;
                    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 949, __pyx_L45_error)
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                  }
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_t_16 = __Pyx_PyObject_Ord(__pyx_t_9); if (unlikely(__pyx_t_16 == (long)(Py_UCS4)-1)) __PYX_ERR(0, 949, __pyx_L45_error)
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __pyx_t_9 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 949, __pyx_L45_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_DECREF_SET(__pyx_v_chrval, __pyx_t_9);
                __pyx_t_9 = 0;

                /* "Cython/Compiler/Parsing.py":948
 *                     chrval = -1
 *                     if c == u'N':
 *                         try:             # <<<<<<<<<<<<<<
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:
 */
              }
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
              goto __pyx_L52_try_end;
              __pyx_L45_error:;
              __Pyx_PyThreadState_assign
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

              /* "Cython/Compiler/Parsing.py":950
 *                         try:
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:             # <<<<<<<<<<<<<<
 *                             s.error("Unknown Unicode character name %s" %
 *                                     repr(systr[3:-1]).lstrip('u'))
 */
              __pyx_t_17 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
              if (__pyx_t_17) {
                __Pyx_AddTraceback("Cython.Compiler.Parsing.p_string_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_4, &__pyx_t_12) < 0) __PYX_ERR(0, 950, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_GOTREF(__pyx_t_12);

                /* "Cython/Compiler/Parsing.py":951
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:
 *                             s.error("Unknown Unicode character name %s" %             # <<<<<<<<<<<<<<
 *                                     repr(systr[3:-1]).lstrip('u'))
 *                     elif len(systr) in (6,10):
 */
                __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_2);

                /* "Cython/Compiler/Parsing.py":952
 *                         except KeyError:
 *                             s.error("Unknown Unicode character name %s" %
 *                                     repr(systr[3:-1]).lstrip('u'))             # <<<<<<<<<<<<<<
 *                     elif len(systr) in (6,10):
 *                         chrval = int(systr[2:], 16)
 */
                if (unlikely(__pyx_v_systr == Py_None)) {
                  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                  __PYX_ERR(0, 952, __pyx_L47_except_error)
                }
                __pyx_t_18 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 3, -1L); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 952, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_19 = PyObject_Repr(__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 952, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_lstrip); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 952, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_18);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 952, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;

                /* "Cython/Compiler/Parsing.py":951
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:
 *                             s.error("Unknown Unicode character name %s" %             # <<<<<<<<<<<<<<
 *                                     repr(systr[3:-1]).lstrip('u'))
 *                     elif len(systr) in (6,10):
 */
                __pyx_t_18 = PyUnicode_Format(__pyx_kp_u_Unknown_Unicode_character_name_s, __pyx_t_19); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                __Pyx_GOTREF(__pyx_t_18);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = NULL;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
                  __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_2);
                  if (likely(__pyx_t_19)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                    __Pyx_INCREF(__pyx_t_19);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_2, function);
                  }
                }
                if (!__pyx_t_19) {
                  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_1);
                } else {
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_2)) {
                    PyObject *__pyx_temp[2] = {__pyx_t_19, __pyx_t_18};
                    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                    __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
                    __Pyx_GOTREF(__pyx_t_1);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
                    PyObject *__pyx_temp[2] = {__pyx_t_19, __pyx_t_18};
                    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                    __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
                    __Pyx_GOTREF(__pyx_t_1);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                    __Pyx_GOTREF(__pyx_t_20);
                    __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19); __pyx_t_19 = NULL;
                    __Pyx_GIVEREF(__pyx_t_18);
                    PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_18);
                    __pyx_t_18 = 0;
                    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L47_except_error)
                    __Pyx_GOTREF(__pyx_t_1);
                    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                  }
                }
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                goto __pyx_L46_exception_handled;
              }
              goto __pyx_L47_except_error;
              __pyx_L47_except_error:;

              /* "Cython/Compiler/Parsing.py":948
 *                     chrval = -1
 *                     if c == u'N':
 *                         try:             # <<<<<<<<<<<<<<
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:
 */
              __Pyx_PyThreadState_assign
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
              goto __pyx_L1_error;
              __pyx_L46_exception_handled:;
              __Pyx_PyThreadState_assign
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
              __pyx_L52_try_end:;
            }

            /* "Cython/Compiler/Parsing.py":947
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 *                     chrval = -1
 *                     if c == u'N':             # <<<<<<<<<<<<<<
 *                         try:
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 */
            goto __pyx_L44;
          }

          /* "Cython/Compiler/Parsing.py":953
 *                             s.error("Unknown Unicode character name %s" %
 *                                     repr(systr[3:-1]).lstrip('u'))
 *                     elif len(systr) in (6,10):             # <<<<<<<<<<<<<<
 *                         chrval = int(systr[2:], 16)
 *                         if chrval > 1114111: # sys.maxunicode:
 */
          if (unlikely(__pyx_v_systr == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
            __PYX_ERR(0, 953, __pyx_L1_error)
          }
          __pyx_t_6 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_systr); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 953, __pyx_L1_error)
          __pyx_t_7 = ((__pyx_t_6 == 6) != 0);
          if (!__pyx_t_7) {
          } else {
            __pyx_t_3 = __pyx_t_7;
            goto __pyx_L55_bool_binop_done;
          }
          __pyx_t_7 = ((__pyx_t_6 == 10) != 0);
          __pyx_t_3 = __pyx_t_7;
          __pyx_L55_bool_binop_done:;
          __pyx_t_7 = (__pyx_t_3 != 0);
          if (__pyx_t_7) {

            /* "Cython/Compiler/Parsing.py":954
 *                                     repr(systr[3:-1]).lstrip('u'))
 *                     elif len(systr) in (6,10):
 *                         chrval = int(systr[2:], 16)             # <<<<<<<<<<<<<<
 *                         if chrval > 1114111: # sys.maxunicode:
 *                             s.error("Invalid unicode escape '%s'" % systr)
 */
            if (unlikely(__pyx_v_systr == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 954, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 954, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 954, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_12);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12);
            __Pyx_INCREF(__pyx_int_16);
            __Pyx_GIVEREF(__pyx_int_16);
            PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_16);
            __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 954, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF_SET(__pyx_v_chrval, __pyx_t_12);
            __pyx_t_12 = 0;

            /* "Cython/Compiler/Parsing.py":955
 *                     elif len(systr) in (6,10):
 *                         chrval = int(systr[2:], 16)
 *                         if chrval > 1114111: # sys.maxunicode:             # <<<<<<<<<<<<<<
 *                             s.error("Invalid unicode escape '%s'" % systr)
 *                             chrval = -1
 */
            __pyx_t_12 = PyObject_RichCompare(__pyx_v_chrval, __pyx_int_1114111, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 955, __pyx_L1_error)
            __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 955, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            if (__pyx_t_7) {

              /* "Cython/Compiler/Parsing.py":956
 *                         chrval = int(systr[2:], 16)
 *                         if chrval > 1114111: # sys.maxunicode:
 *                             s.error("Invalid unicode escape '%s'" % systr)             # <<<<<<<<<<<<<<
 *                             chrval = -1
 *                     else:
 */
              __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 956, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_9 = PyUnicode_Format(__pyx_kp_u_Invalid_unicode_escape_s, __pyx_v_systr); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 956, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __pyx_t_1 = NULL;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
                __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
                if (likely(__pyx_t_1)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                  __Pyx_INCREF(__pyx_t_1);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_4, function);
                }
              }
              if (!__pyx_t_1) {
                __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 956, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_GOTREF(__pyx_t_12);
              } else {
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_4)) {
                  PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_9};
                  __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 956, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_GOTREF(__pyx_t_12);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
                  PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_9};
                  __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 956, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_GOTREF(__pyx_t_12);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                } else
                #endif
                {
                  __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
                  __Pyx_GIVEREF(__pyx_t_9);
                  PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_9);
                  __pyx_t_9 = 0;
                  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 956, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_12);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                }
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

              /* "Cython/Compiler/Parsing.py":957
 *                         if chrval > 1114111: # sys.maxunicode:
 *                             s.error("Invalid unicode escape '%s'" % systr)
 *                             chrval = -1             # <<<<<<<<<<<<<<
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,
 */
              __Pyx_INCREF(__pyx_int_neg_1);
              __Pyx_DECREF_SET(__pyx_v_chrval, __pyx_int_neg_1);

              /* "Cython/Compiler/Parsing.py":955
 *                     elif len(systr) in (6,10):
 *                         chrval = int(systr[2:], 16)
 *                         if chrval > 1114111: # sys.maxunicode:             # <<<<<<<<<<<<<<
 *                             s.error("Invalid unicode escape '%s'" % systr)
 *                             chrval = -1
 */
            }

            /* "Cython/Compiler/Parsing.py":953
 *                             s.error("Unknown Unicode character name %s" %
 *                                     repr(systr[3:-1]).lstrip('u'))
 *                     elif len(systr) in (6,10):             # <<<<<<<<<<<<<<
 *                         chrval = int(systr[2:], 16)
 *                         if chrval > 1114111: # sys.maxunicode:
 */
            goto __pyx_L44;
          }

          /* "Cython/Compiler/Parsing.py":959
 *                             chrval = -1
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,             # <<<<<<<<<<<<<<
 *                                 fatal=False)
 *                     if chrval >= 0:
 */
          /*else*/ {
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 959, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Invalid_unicode_escape_s, __pyx_v_systr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
            __pyx_t_4 = 0;

            /* "Cython/Compiler/Parsing.py":960
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,
 *                                 fatal=False)             # <<<<<<<<<<<<<<
 *                     if chrval >= 0:
 *                         chars.append_uescape(chrval, systr)
 */
            __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 960, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 960, __pyx_L1_error)

            /* "Cython/Compiler/Parsing.py":959
 *                             chrval = -1
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,             # <<<<<<<<<<<<<<
 *                                 fatal=False)
 *                     if chrval >= 0:
 */
            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 959, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __pyx_L44:;

          /* "Cython/Compiler/Parsing.py":961
 *                         s.error("Invalid unicode escape '%s'" % systr,
 *                                 fatal=False)
 *                     if chrval >= 0:             # <<<<<<<<<<<<<<
 *                         chars.append_uescape(chrval, systr)
 *                 else:
 */
          __pyx_t_9 = PyObject_RichCompare(__pyx_v_chrval, __pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 961, __pyx_L1_error)
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (__pyx_t_7) {

            /* "Cython/Compiler/Parsing.py":962
 *                                 fatal=False)
 *                     if chrval >= 0:
 *                         chars.append_uescape(chrval, systr)             # <<<<<<<<<<<<<<
 *                 else:
 *                     chars.append(u'\\' + systr[1:])
 */
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_append_uescape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 962, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_2 = NULL;
            __pyx_t_17 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
              __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
              if (likely(__pyx_t_2)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_2);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_4, function);
                __pyx_t_17 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_4)) {
              PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_chrval, __pyx_v_systr};
              __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 962, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_GOTREF(__pyx_t_9);
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
              PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_chrval, __pyx_v_systr};
              __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 962, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_GOTREF(__pyx_t_9);
            } else
            #endif
            {
              __pyx_t_12 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 962, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_12);
              if (__pyx_t_2) {
                __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __pyx_t_2 = NULL;
              }
              __Pyx_INCREF(__pyx_v_chrval);
              __Pyx_GIVEREF(__pyx_v_chrval);
              PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_17, __pyx_v_chrval);
              __Pyx_INCREF(__pyx_v_systr);
              __Pyx_GIVEREF(__pyx_v_systr);
              PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_17, __pyx_v_systr);
              __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 962, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

            /* "Cython/Compiler/Parsing.py":961
 *                         s.error("Invalid unicode escape '%s'" % systr,
 *                                 fatal=False)
 *                     if chrval >= 0:             # <<<<<<<<<<<<<<
 *                         chars.append_uescape(chrval, systr)
 *                 else:
 */
          }

          /* "Cython/Compiler/Parsing.py":945
 *                         s.error("Invalid hex escape '%s'" % systr,
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', 'f', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}             # <<<<<<<<<<<<<<
 *                     chrval = -1
 *                     if c == u'N':
 */
          goto __pyx_L37;
        }

        /* "Cython/Compiler/Parsing.py":964
 *                         chars.append_uescape(chrval, systr)
 *                 else:
 *                     chars.append(u'\\' + systr[1:])             # <<<<<<<<<<<<<<
 *                     if is_python3_source and not has_non_ascii_literal_characters \
 *                            and check_for_non_ascii_characters(systr):
 */
        /*else*/ {
          if (unlikely(__pyx_v_systr == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 964, __pyx_L1_error)
          }
          __pyx_t_9 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u__62, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_t_4); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 964, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "Cython/Compiler/Parsing.py":965
 *                 else:
 *                     chars.append(u'\\' + systr[1:])
 *                     if is_python3_source and not has_non_ascii_literal_characters \             # <<<<<<<<<<<<<<
 *                            and check_for_non_ascii_characters(systr):
 *                         has_non_ascii_literal_characters = True
 */
          __pyx_t_3 = (__pyx_v_is_python3_source != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_7 = __pyx_t_3;
            goto __pyx_L60_bool_binop_done;
          }

          /* "Cython/Compiler/Parsing.py":966
 *                     chars.append(u'\\' + systr[1:])
 *                     if is_python3_source and not has_non_ascii_literal_characters \
 *                            and check_for_non_ascii_characters(systr):             # <<<<<<<<<<<<<<
 *                         has_non_ascii_literal_characters = True
 *         elif sy == 'NEWLINE':
 */
          __pyx_t_3 = ((!(__pyx_v_has_non_ascii_literal_characters != 0)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_7 = __pyx_t_3;
            goto __pyx_L60_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(__pyx_v_systr) != 0);
          __pyx_t_7 = __pyx_t_3;
          __pyx_L60_bool_binop_done:;

          /* "Cython/Compiler/Parsing.py":965
 *                 else:
 *                     chars.append(u'\\' + systr[1:])
 *                     if is_python3_source and not has_non_ascii_literal_characters \             # <<<<<<<<<<<<<<
 *                            and check_for_non_ascii_characters(systr):
 *                         has_non_ascii_literal_characters = True
 */
          if (__pyx_t_7) {

            /* "Cython/Compiler/Parsing.py":967
 *                     if is_python3_source and not has_non_ascii_literal_characters \
 *                            and check_for_non_ascii_characters(systr):
 *                         has_non_ascii_literal_characters = True             # <<<<<<<<<<<<<<
 *         elif sy == 'NEWLINE':
 *             chars.append(u'\n')
 */
            __pyx_v_has_non_ascii_literal_characters = 1;

            /* "Cython/Compiler/Parsing.py":965
 *                 else:
 *                     chars.append(u'\\' + systr[1:])
 *                     if is_python3_source and not has_non_ascii_literal_characters \             # <<<<<<<<<<<<<<
 *                            and check_for_non_ascii_characters(systr):
 *                         has_non_ascii_literal_characters = True
 */
          }
        }
        __pyx_L37:;
      }
      __pyx_L32:;

      /* "Cython/Compiler/Parsing.py":922
 *             if is_python3_source and not has_non_ascii_literal_characters and check_for_non_ascii_characters(systr):
 *                 has_non_ascii_literal_characters = True
 *         elif sy == 'ESCAPE':             # <<<<<<<<<<<<<<
 *             if is_raw:
 *                 chars.append(systr)
 */
      goto __pyx_L27;
    }

    /* "Cython/Compiler/Parsing.py":968
 *                            and check_for_non_ascii_characters(systr):
 *                         has_non_ascii_literal_characters = True
 *         elif sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 968, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":969
 *                         has_non_ascii_literal_characters = True
 *         elif sy == 'NEWLINE':
 *             chars.append(u'\n')             # <<<<<<<<<<<<<<
 *         elif sy == 'END_STRING':
 *             break
 */
      __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_kp_u__63); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 969, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":968
 *                            and check_for_non_ascii_characters(systr):
 *                         has_non_ascii_literal_characters = True
 *         elif sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':
 */
      goto __pyx_L27;
    }

    /* "Cython/Compiler/Parsing.py":970
 *         elif sy == 'NEWLINE':
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':             # <<<<<<<<<<<<<<
 *             break
 *         elif sy == 'EOF':
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_END_STRING, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 970, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":971
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':
 *             break             # <<<<<<<<<<<<<<
 *         elif sy == 'EOF':
 *             s.error("Unclosed string literal", pos=pos)
 */
      goto __pyx_L26_break;

      /* "Cython/Compiler/Parsing.py":970
 *         elif sy == 'NEWLINE':
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':             # <<<<<<<<<<<<<<
 *             break
 *         elif sy == 'EOF':
 */
    }

    /* "Cython/Compiler/Parsing.py":972
 *         elif sy == 'END_STRING':
 *             break
 *         elif sy == 'EOF':             # <<<<<<<<<<<<<<
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 972, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":973
 *             break
 *         elif sy == 'EOF':
 *             s.error("Unclosed string literal", pos=pos)             # <<<<<<<<<<<<<<
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 973, __pyx_L1_error)
      __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__64, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

      /* "Cython/Compiler/Parsing.py":972
 *         elif sy == 'END_STRING':
 *             break
 *         elif sy == 'EOF':             # <<<<<<<<<<<<<<
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 */
      goto __pyx_L27;
    }

    /* "Cython/Compiler/Parsing.py":975
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %             # <<<<<<<<<<<<<<
 *                     (sy, s.systring))
 * 
 */
    /*else*/ {
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);

      /* "Cython/Compiler/Parsing.py":976
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %
 *                     (sy, s.systring))             # <<<<<<<<<<<<<<
 * 
 *     if kind == 'c':
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 976, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_sy);
      __Pyx_GIVEREF(__pyx_v_sy);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_sy);
      __Pyx_INCREF(__pyx_v_s->systring);
      __Pyx_GIVEREF(__pyx_v_s->systring);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_s->systring);

      /* "Cython/Compiler/Parsing.py":975
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %             # <<<<<<<<<<<<<<
 *                     (sy, s.systring))
 * 
 */
      __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Unexpected_token_r_r_in_string_l, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      if (!__pyx_t_4) {
        __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_12);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2};
          __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2};
          __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        } else
        #endif
        {
          __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL;
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_2);
          __pyx_t_2 = 0;
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __pyx_L27:;
  }
  __pyx_L26_break:;

  /* "Cython/Compiler/Parsing.py":978
 *                     (sy, s.systring))
 * 
 *     if kind == 'c':             # <<<<<<<<<<<<<<
 *         unicode_value = None
 *         bytes_value = chars.getchar()
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":979
 * 
 *     if kind == 'c':
 *         unicode_value = None             # <<<<<<<<<<<<<<
 *         bytes_value = chars.getchar()
 *         if len(bytes_value) != 1:
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_unicode_value = Py_None;

    /* "Cython/Compiler/Parsing.py":980
 *     if kind == 'c':
 *         unicode_value = None
 *         bytes_value = chars.getchar()             # <<<<<<<<<<<<<<
 *         if len(bytes_value) != 1:
 *             error(pos, u"invalid character literal: %r" % bytes_value)
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_getchar); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    if (__pyx_t_1) {
      __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 980, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      __pyx_t_12 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 980, __pyx_L1_error)
    }
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_bytes_value = __pyx_t_12;
    __pyx_t_12 = 0;

    /* "Cython/Compiler/Parsing.py":981
 *         unicode_value = None
 *         bytes_value = chars.getchar()
 *         if len(bytes_value) != 1:             # <<<<<<<<<<<<<<
 *             error(pos, u"invalid character literal: %r" % bytes_value)
 *     else:
 */
    __pyx_t_6 = PyObject_Length(__pyx_v_bytes_value); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 981, __pyx_L1_error)
    __pyx_t_7 = ((__pyx_t_6 != 1) != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":982
 *         bytes_value = chars.getchar()
 *         if len(bytes_value) != 1:
 *             error(pos, u"invalid character literal: %r" % bytes_value)             # <<<<<<<<<<<<<<
 *     else:
 *         bytes_value, unicode_value = chars.getstrings()
 */
      __pyx_t_9 = PyUnicode_Format(__pyx_kp_u_invalid_character_literal_r, __pyx_v_bytes_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 982, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_2 = NULL;
      __pyx_t_17 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_17 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_pos, __pyx_t_9};
        __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 982, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_pos, __pyx_t_9};
        __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 982, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__pyx_t_2) {
          __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_17, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_17, __pyx_t_9);
        __pyx_t_9 = 0;
        __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

      /* "Cython/Compiler/Parsing.py":981
 *         unicode_value = None
 *         bytes_value = chars.getchar()
 *         if len(bytes_value) != 1:             # <<<<<<<<<<<<<<
 *             error(pos, u"invalid character literal: %r" % bytes_value)
 *     else:
 */
    }

    /* "Cython/Compiler/Parsing.py":978
 *                     (sy, s.systring))
 * 
 *     if kind == 'c':             # <<<<<<<<<<<<<<
 *         unicode_value = None
 *         bytes_value = chars.getchar()
 */
    goto __pyx_L63;
  }

  /* "Cython/Compiler/Parsing.py":984
 *             error(pos, u"invalid character literal: %r" % bytes_value)
 *     else:
 *         bytes_value, unicode_value = chars.getstrings()             # <<<<<<<<<<<<<<
 *         if is_python3_source and has_non_ascii_literal_characters:
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_getstrings); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    if (__pyx_t_4) {
      __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 984, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      __pyx_t_12 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 984, __pyx_L1_error)
    }
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) {
      PyObject* sequence = __pyx_t_12;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 984, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      #else
      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 984, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_9 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 984, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_21 = Py_TYPE(__pyx_t_9)->tp_iternext;
      index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L65_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 1; __pyx_t_4 = __pyx_t_21(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L65_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_9), 2) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
      __pyx_t_21 = NULL;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L66_unpacking_done;
      __pyx_L65_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 984, __pyx_L1_error)
      __pyx_L66_unpacking_done:;
    }
    __pyx_v_bytes_value = __pyx_t_1;
    __pyx_t_1 = 0;
    __pyx_v_unicode_value = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":985
 *     else:
 *         bytes_value, unicode_value = chars.getstrings()
 *         if is_python3_source and has_non_ascii_literal_characters:             # <<<<<<<<<<<<<<
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):
 */
    __pyx_t_3 = (__pyx_v_is_python3_source != 0);
    if (__pyx_t_3) {
    } else {
      __pyx_t_7 = __pyx_t_3;
      goto __pyx_L68_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_has_non_ascii_literal_characters != 0);
    __pyx_t_7 = __pyx_t_3;
    __pyx_L68_bool_binop_done:;
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":987
 *         if is_python3_source and has_non_ascii_literal_characters:
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):             # <<<<<<<<<<<<<<
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)
 */
      __Pyx_INCREF(__pyx_v_kind);
      __pyx_t_12 = __pyx_v_kind;
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_u, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
      if (__pyx_t_3) {
      } else {
        __pyx_t_7 = __pyx_t_3;
        goto __pyx_L71_bool_binop_done;
      }
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_f, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
      __pyx_t_7 = __pyx_t_3;
      __pyx_L71_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_3 = (__pyx_t_7 != 0);
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":988
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):
 *                 s.error("bytes can only contain ASCII literal characters.",             # <<<<<<<<<<<<<<
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 988, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);

        /* "Cython/Compiler/Parsing.py":989
 *             if kind not in ('u', 'f'):
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)             # <<<<<<<<<<<<<<
 *             bytes_value = None
 *     if kind == 'f':
 */
        __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 989, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 989, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 989, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":988
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):
 *                 s.error("bytes can only contain ASCII literal characters.",             # <<<<<<<<<<<<<<
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 */
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_tuple__65, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 988, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":987
 *         if is_python3_source and has_non_ascii_literal_characters:
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):             # <<<<<<<<<<<<<<
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)
 */
      }

      /* "Cython/Compiler/Parsing.py":990
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)
 *             bytes_value = None             # <<<<<<<<<<<<<<
 *     if kind == 'f':
 *         unicode_value = p_f_string(s, unicode_value, pos)
 */
      __Pyx_INCREF(Py_None);
      __Pyx_DECREF_SET(__pyx_v_bytes_value, Py_None);

      /* "Cython/Compiler/Parsing.py":985
 *     else:
 *         bytes_value, unicode_value = chars.getstrings()
 *         if is_python3_source and has_non_ascii_literal_characters:             # <<<<<<<<<<<<<<
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):
 */
    }
  }
  __pyx_L63:;

  /* "Cython/Compiler/Parsing.py":991
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 *     if kind == 'f':             # <<<<<<<<<<<<<<
 *         unicode_value = p_f_string(s, unicode_value, pos)
 *     s.next()
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_f, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":992
 *             bytes_value = None
 *     if kind == 'f':
 *         unicode_value = p_f_string(s, unicode_value, pos)             # <<<<<<<<<<<<<<
 *     s.next()
 *     return (kind, bytes_value, unicode_value)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_f_string(__pyx_v_s, __pyx_v_unicode_value, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 992, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_unicode_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":991
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 *     if kind == 'f':             # <<<<<<<<<<<<<<
 *         unicode_value = p_f_string(s, unicode_value, pos)
 *     s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":993
 *     if kind == 'f':
 *         unicode_value = p_f_string(s, unicode_value, pos)
 *     s.next()             # <<<<<<<<<<<<<<
 *     return (kind, bytes_value, unicode_value)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":994
 *         unicode_value = p_f_string(s, unicode_value, pos)
 *     s.next()
 *     return (kind, bytes_value, unicode_value)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_kind);
  __Pyx_GIVEREF(__pyx_v_kind);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kind);
  __Pyx_INCREF(__pyx_v_bytes_value);
  __Pyx_GIVEREF(__pyx_v_bytes_value);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_bytes_value);
  __Pyx_INCREF(__pyx_v_unicode_value);
  __Pyx_GIVEREF(__pyx_v_unicode_value);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_unicode_value);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":859
 * 
 * 
 * def p_string_literal(s, kind_override=None):             # <<<<<<<<<<<<<<
 *     # A single string or char literal.  Returns (kind, bvalue, uvalue)
 *     # where kind in ('b', 'c', 'u', 'f', '').  The 'bvalue' is the source
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_string_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_systr);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kind_string);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_chars);
  __Pyx_XDECREF(__pyx_v_sy);
  __Pyx_XDECREF(__pyx_v_chrval);
  __Pyx_XDECREF(__pyx_v_unicode_value);
  __Pyx_XDECREF(__pyx_v_bytes_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":997
 * 
 * 
 * def p_f_string(s, unicode_value, pos):             # <<<<<<<<<<<<<<
 *     # Parses a PEP 498 f-string literal into a list of nodes. Nodes are either UnicodeNodes
 *     # or FormattedValueNodes.
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_f_string(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_unicode_value, PyObject *__pyx_v_pos) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_size;
  PyObject *__pyx_v_values = NULL;
  Py_ssize_t __pyx_v_current_literal_start;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_v_encoded_str = NULL;
  PyObject *__pyx_v_expr_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  __Pyx_RefNannySetupContext("p_f_string", 0);

  /* "Cython/Compiler/Parsing.py":1000
 *     # Parses a PEP 498 f-string literal into a list of nodes. Nodes are either UnicodeNodes
 *     # or FormattedValueNodes.
 *     values = []             # <<<<<<<<<<<<<<
 *     i = 0
 *     size = len(unicode_value)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_values = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1001
 *     # or FormattedValueNodes.
 *     values = []
 *     i = 0             # <<<<<<<<<<<<<<
 *     size = len(unicode_value)
 *     current_literal_start = 0
 */
  __pyx_v_i = 0;

  /* "Cython/Compiler/Parsing.py":1002
 *     values = []
 *     i = 0
 *     size = len(unicode_value)             # <<<<<<<<<<<<<<
 *     current_literal_start = 0
 *     while i < size:
 */
  __pyx_t_2 = PyObject_Length(__pyx_v_unicode_value); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 1002, __pyx_L1_error)
  __pyx_v_size = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":1003
 *     i = 0
 *     size = len(unicode_value)
 *     current_literal_start = 0             # <<<<<<<<<<<<<<
 *     while i < size:
 *         c = unicode_value[i]
 */
  __pyx_v_current_literal_start = 0;

  /* "Cython/Compiler/Parsing.py":1004
 *     size = len(unicode_value)
 *     current_literal_start = 0
 *     while i < size:             # <<<<<<<<<<<<<<
 *         c = unicode_value[i]
 *         if c in '{}':
 */
  while (1) {
    __pyx_t_3 = ((__pyx_v_i < __pyx_v_size) != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1005
 *     current_literal_start = 0
 *     while i < size:
 *         c = unicode_value[i]             # <<<<<<<<<<<<<<
 *         if c in '{}':
 *             if i + 1 < size and unicode_value[i + 1] == c:
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1005, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1006
 *     while i < size:
 *         c = unicode_value[i]
 *         if c in '{}':             # <<<<<<<<<<<<<<
 *             if i + 1 < size and unicode_value[i + 1] == c:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])
 */
    __pyx_t_3 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_c, __pyx_kp_u__66, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1007
 *         c = unicode_value[i]
 *         if c in '{}':
 *             if i + 1 < size and unicode_value[i + 1] == c:             # <<<<<<<<<<<<<<
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 */
      __pyx_t_3 = (((__pyx_v_i + 1) < __pyx_v_size) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_4 = __pyx_t_3;
        goto __pyx_L7_bool_binop_done;
      }
      __pyx_t_2 = (__pyx_v_i + 1);
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1007, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_v_c, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1007, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1007, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_4 = __pyx_t_3;
      __pyx_L7_bool_binop_done:;
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":1008
 *         if c in '{}':
 *             if i + 1 < size and unicode_value[i + 1] == c:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])             # <<<<<<<<<<<<<<
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *                 i += 2
 */
        __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_unicode_value, __pyx_v_current_literal_start, (__pyx_v_i + 1), NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1008, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
        __pyx_t_6 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        if (!__pyx_t_7) {
          __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_5);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_6)) {
            PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_1};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1008, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
            PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_1};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1008, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          } else
          #endif
          {
            __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1008, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
            __Pyx_GIVEREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_1);
            __pyx_t_1 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1008, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_encoded_str, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":1009
 *             if i + 1 < size and unicode_value[i + 1] == c:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))             # <<<<<<<<<<<<<<
 *                 i += 2
 *                 current_literal_start = i
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
        __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_value, __pyx_v_encoded_str) < 0) __PYX_ERR(0, 1009, __pyx_L1_error)
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_values, __pyx_t_1); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1009, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1010
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *                 i += 2             # <<<<<<<<<<<<<<
 *                 current_literal_start = i
 *             elif c == '}':
 */
        __pyx_v_i = (__pyx_v_i + 2);

        /* "Cython/Compiler/Parsing.py":1011
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *                 i += 2
 *                 current_literal_start = i             # <<<<<<<<<<<<<<
 *             elif c == '}':
 *                 s.error("single '}' encountered in format string")
 */
        __pyx_v_current_literal_start = __pyx_v_i;

        /* "Cython/Compiler/Parsing.py":1007
 *         c = unicode_value[i]
 *         if c in '{}':
 *             if i + 1 < size and unicode_value[i + 1] == c:             # <<<<<<<<<<<<<<
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 */
        goto __pyx_L6;
      }

      /* "Cython/Compiler/Parsing.py":1012
 *                 i += 2
 *                 current_literal_start = i
 *             elif c == '}':             # <<<<<<<<<<<<<<
 *                 s.error("single '}' encountered in format string")
 *             else:
 */
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_c, __pyx_kp_u__67, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1012, __pyx_L1_error)
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":1013
 *                 current_literal_start = i
 *             elif c == '}':
 *                 s.error("single '}' encountered in format string")             # <<<<<<<<<<<<<<
 *             else:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i])
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":1012
 *                 i += 2
 *                 current_literal_start = i
 *             elif c == '}':             # <<<<<<<<<<<<<<
 *                 s.error("single '}' encountered in format string")
 *             else:
 */
        goto __pyx_L6;
      }

      /* "Cython/Compiler/Parsing.py":1015
 *                 s.error("single '}' encountered in format string")
 *             else:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i])             # <<<<<<<<<<<<<<
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *                 i, expr_node = p_f_string_expr(s, unicode_value, pos, i + 1)
 */
      /*else*/ {
        __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_unicode_value, __pyx_v_current_literal_start, __pyx_v_i, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1015, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
        __pyx_t_6 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        if (!__pyx_t_5) {
          __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1015, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_8);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_6)) {
            PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1};
            __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1015, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
            PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1};
            __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1015, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          } else
          #endif
          {
            __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1015, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
            __Pyx_GIVEREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1);
            __pyx_t_1 = 0;
            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1015, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_encoded_str, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":1016
 *             else:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i])
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))             # <<<<<<<<<<<<<<
 *                 i, expr_node = p_f_string_expr(s, unicode_value, pos, i + 1)
 *                 current_literal_start = i
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
        __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_value, __pyx_v_encoded_str) < 0) __PYX_ERR(0, 1016, __pyx_L1_error)
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_values, __pyx_t_1); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1016, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1017
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i])
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *                 i, expr_node = p_f_string_expr(s, unicode_value, pos, i + 1)             # <<<<<<<<<<<<<<
 *                 current_literal_start = i
 *                 values.append(expr_node)
 */
        __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_f_string_expr(__pyx_v_s, __pyx_v_unicode_value, __pyx_v_pos, (__pyx_v_i + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(__pyx_t_1 != Py_None)) {
          PyObject* sequence = __pyx_t_1;
          #if !CYTHON_COMPILING_IN_PYPY
          Py_ssize_t size = Py_SIZE(sequence);
          #else
          Py_ssize_t size = PySequence_Size(sequence);
          #endif
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 1017, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          #else
          __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1017, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1017, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        } else {
          __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1017, __pyx_L1_error)
        }
        __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_t_7); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1017, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_i = __pyx_t_2;
        __Pyx_XDECREF_SET(__pyx_v_expr_node, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":1018
 *                 values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *                 i, expr_node = p_f_string_expr(s, unicode_value, pos, i + 1)
 *                 current_literal_start = i             # <<<<<<<<<<<<<<
 *                 values.append(expr_node)
 *         else:
 */
        __pyx_v_current_literal_start = __pyx_v_i;

        /* "Cython/Compiler/Parsing.py":1019
 *                 i, expr_node = p_f_string_expr(s, unicode_value, pos, i + 1)
 *                 current_literal_start = i
 *                 values.append(expr_node)             # <<<<<<<<<<<<<<
 *         else:
 *             i += 1
 */
        __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_values, __pyx_v_expr_node); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1019, __pyx_L1_error)
      }
      __pyx_L6:;

      /* "Cython/Compiler/Parsing.py":1006
 *     while i < size:
 *         c = unicode_value[i]
 *         if c in '{}':             # <<<<<<<<<<<<<<
 *             if i + 1 < size and unicode_value[i + 1] == c:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i + 1])
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":1021
 *                 values.append(expr_node)
 *         else:
 *             i += 1             # <<<<<<<<<<<<<<
 * 
 *     encoded_str = EncodedString(unicode_value[current_literal_start:])
 */
    /*else*/ {
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L5:;
  }

  /* "Cython/Compiler/Parsing.py":1023
 *             i += 1
 * 
 *     encoded_str = EncodedString(unicode_value[current_literal_start:])             # <<<<<<<<<<<<<<
 *     values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *     return values
 */
  __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_unicode_value, __pyx_v_current_literal_start, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
  __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  if (!__pyx_t_8) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1023, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_XDECREF_SET(__pyx_v_encoded_str, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1024
 * 
 *     encoded_str = EncodedString(unicode_value[current_literal_start:])
 *     values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))             # <<<<<<<<<<<<<<
 *     return values
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_encoded_str) < 0) __PYX_ERR(0, 1024, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_values, __pyx_t_6); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":1025
 *     encoded_str = EncodedString(unicode_value[current_literal_start:])
 *     values.append(ExprNodes.UnicodeNode(pos, value=encoded_str))
 *     return values             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_values);
  __pyx_r = __pyx_v_values;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":997
 * 
 * 
 * def p_f_string(s, unicode_value, pos):             # <<<<<<<<<<<<<<
 *     # Parses a PEP 498 f-string literal into a list of nodes. Nodes are either UnicodeNodes
 *     # or FormattedValueNodes.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_f_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_values);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_encoded_str);
  __Pyx_XDECREF(__pyx_v_expr_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1028
 * 
 * 
 * def p_f_string_expr(s, unicode_value, pos, starting_index):             # <<<<<<<<<<<<<<
 *     # Parses a {}-delimited expression inside an f-string. Returns a FormattedValueNode
 *     # and the index in the string that follows the expression.
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_f_string_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_unicode_value, PyObject *__pyx_v_pos, Py_ssize_t __pyx_v_starting_index) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_size;
  Py_UCS4 __pyx_v_c;
  Py_UCS4 __pyx_v_quote_char;
  Py_UCS4 __pyx_v_NO_CHAR;
  PyObject *__pyx_v_conversion_char = NULL;
  PyObject *__pyx_v_terminal_char = NULL;
  PyObject *__pyx_v_format_spec = NULL;
  PyObject *__pyx_v_format_spec_str = NULL;
  long __pyx_v_nested_depth;
  int __pyx_v_in_triple_quotes;
  PyObject *__pyx_v_expr_str = NULL;
  PyObject *__pyx_v_expr_pos = NULL;
  int __pyx_v_in_string;
  Py_ssize_t __pyx_v_start_format_spec;
  PyObject *__pyx_v_buf = NULL;
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_scanner = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_UCS4 __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("p_f_string_expr", 0);

  /* "Cython/Compiler/Parsing.py":1031
 *     # Parses a {}-delimited expression inside an f-string. Returns a FormattedValueNode
 *     # and the index in the string that follows the expression.
 *     i = starting_index             # <<<<<<<<<<<<<<
 *     size = len(unicode_value)
 *     conversion_char = terminal_char = format_spec = None
 */
  __pyx_v_i = __pyx_v_starting_index;

  /* "Cython/Compiler/Parsing.py":1032
 *     # and the index in the string that follows the expression.
 *     i = starting_index
 *     size = len(unicode_value)             # <<<<<<<<<<<<<<
 *     conversion_char = terminal_char = format_spec = None
 *     format_spec_str = None
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_unicode_value); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(0, 1032, __pyx_L1_error)
  __pyx_v_size = __pyx_t_1;

  /* "Cython/Compiler/Parsing.py":1033
 *     i = starting_index
 *     size = len(unicode_value)
 *     conversion_char = terminal_char = format_spec = None             # <<<<<<<<<<<<<<
 *     format_spec_str = None
 *     NO_CHAR = 2**30
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_conversion_char = Py_None;
  __Pyx_INCREF(Py_None);
  __pyx_v_terminal_char = Py_None;
  __Pyx_INCREF(Py_None);
  __pyx_v_format_spec = Py_None;

  /* "Cython/Compiler/Parsing.py":1034
 *     size = len(unicode_value)
 *     conversion_char = terminal_char = format_spec = None
 *     format_spec_str = None             # <<<<<<<<<<<<<<
 *     NO_CHAR = 2**30
 * 
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_format_spec_str = Py_None;

  /* "Cython/Compiler/Parsing.py":1035
 *     conversion_char = terminal_char = format_spec = None
 *     format_spec_str = None
 *     NO_CHAR = 2**30             # <<<<<<<<<<<<<<
 * 
 *     nested_depth = 0
 */
  __pyx_v_NO_CHAR = 0x40000000;

  /* "Cython/Compiler/Parsing.py":1037
 *     NO_CHAR = 2**30
 * 
 *     nested_depth = 0             # <<<<<<<<<<<<<<
 *     quote_char = NO_CHAR
 *     in_triple_quotes = False
 */
  __pyx_v_nested_depth = 0;

  /* "Cython/Compiler/Parsing.py":1038
 * 
 *     nested_depth = 0
 *     quote_char = NO_CHAR             # <<<<<<<<<<<<<<
 *     in_triple_quotes = False
 * 
 */
  __pyx_v_quote_char = __pyx_v_NO_CHAR;

  /* "Cython/Compiler/Parsing.py":1039
 *     nested_depth = 0
 *     quote_char = NO_CHAR
 *     in_triple_quotes = False             # <<<<<<<<<<<<<<
 * 
 *     while True:
 */
  __pyx_v_in_triple_quotes = 0;

  /* "Cython/Compiler/Parsing.py":1041
 *     in_triple_quotes = False
 * 
 *     while True:             # <<<<<<<<<<<<<<
 *         if i >= size:
 *             s.error("missing '}' in format string expression")
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":1042
 * 
 *     while True:
 *         if i >= size:             # <<<<<<<<<<<<<<
 *             s.error("missing '}' in format string expression")
 *         c = unicode_value[i]
 */
    __pyx_t_2 = ((__pyx_v_i >= __pyx_v_size) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1043
 *     while True:
 *         if i >= size:
 *             s.error("missing '}' in format string expression")             # <<<<<<<<<<<<<<
 *         c = unicode_value[i]
 * 
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__69, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1042
 * 
 *     while True:
 *         if i >= size:             # <<<<<<<<<<<<<<
 *             s.error("missing '}' in format string expression")
 *         c = unicode_value[i]
 */
    }

    /* "Cython/Compiler/Parsing.py":1044
 *         if i >= size:
 *             s.error("missing '}' in format string expression")
 *         c = unicode_value[i]             # <<<<<<<<<<<<<<
 * 
 *         if quote_char != NO_CHAR:
 */
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_AsPy_UCS4(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_UCS4)-1) && PyErr_Occurred())) __PYX_ERR(0, 1044, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_c = __pyx_t_5;

    /* "Cython/Compiler/Parsing.py":1046
 *         c = unicode_value[i]
 * 
 *         if quote_char != NO_CHAR:             # <<<<<<<<<<<<<<
 *             if c == '\\':
 *                 i += 1
 */
    __pyx_t_2 = ((__pyx_v_quote_char != __pyx_v_NO_CHAR) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1047
 * 
 *         if quote_char != NO_CHAR:
 *             if c == '\\':             # <<<<<<<<<<<<<<
 *                 i += 1
 *             elif c == quote_char:
 */
      __pyx_t_2 = ((__pyx_v_c == 92) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1048
 *         if quote_char != NO_CHAR:
 *             if c == '\\':
 *                 i += 1             # <<<<<<<<<<<<<<
 *             elif c == quote_char:
 *                 if in_triple_quotes:
 */
        __pyx_v_i = (__pyx_v_i + 1);

        /* "Cython/Compiler/Parsing.py":1047
 * 
 *         if quote_char != NO_CHAR:
 *             if c == '\\':             # <<<<<<<<<<<<<<
 *                 i += 1
 *             elif c == quote_char:
 */
        goto __pyx_L7;
      }

      /* "Cython/Compiler/Parsing.py":1049
 *             if c == '\\':
 *                 i += 1
 *             elif c == quote_char:             # <<<<<<<<<<<<<<
 *                 if in_triple_quotes:
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 */
      __pyx_t_2 = ((__pyx_v_c == __pyx_v_quote_char) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1050
 *                 i += 1
 *             elif c == quote_char:
 *                 if in_triple_quotes:             # <<<<<<<<<<<<<<
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                         in_triple_quotes = False
 */
        __pyx_t_2 = (__pyx_v_in_triple_quotes != 0);
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":1051
 *             elif c == quote_char:
 *                 if in_triple_quotes:
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:             # <<<<<<<<<<<<<<
 *                         in_triple_quotes = False
 *                         quote_char = NO_CHAR
 */
          __pyx_t_6 = (((__pyx_v_i + 2) < __pyx_v_size) != 0);
          if (__pyx_t_6) {
          } else {
            __pyx_t_2 = __pyx_t_6;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_1 = (__pyx_v_i + 1);
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1051, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1051, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (__pyx_t_6) {
          } else {
            __pyx_t_2 = __pyx_t_6;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_1 = (__pyx_v_i + 2);
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1051, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1051, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = __pyx_t_6;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {

            /* "Cython/Compiler/Parsing.py":1052
 *                 if in_triple_quotes:
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                         in_triple_quotes = False             # <<<<<<<<<<<<<<
 *                         quote_char = NO_CHAR
 *                         i += 2
 */
            __pyx_v_in_triple_quotes = 0;

            /* "Cython/Compiler/Parsing.py":1053
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                         in_triple_quotes = False
 *                         quote_char = NO_CHAR             # <<<<<<<<<<<<<<
 *                         i += 2
 *                 else:
 */
            __pyx_v_quote_char = __pyx_v_NO_CHAR;

            /* "Cython/Compiler/Parsing.py":1054
 *                         in_triple_quotes = False
 *                         quote_char = NO_CHAR
 *                         i += 2             # <<<<<<<<<<<<<<
 *                 else:
 *                     quote_char = NO_CHAR
 */
            __pyx_v_i = (__pyx_v_i + 2);

            /* "Cython/Compiler/Parsing.py":1051
 *             elif c == quote_char:
 *                 if in_triple_quotes:
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:             # <<<<<<<<<<<<<<
 *                         in_triple_quotes = False
 *                         quote_char = NO_CHAR
 */
          }

          /* "Cython/Compiler/Parsing.py":1050
 *                 i += 1
 *             elif c == quote_char:
 *                 if in_triple_quotes:             # <<<<<<<<<<<<<<
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                         in_triple_quotes = False
 */
          goto __pyx_L8;
        }

        /* "Cython/Compiler/Parsing.py":1056
 *                         i += 2
 *                 else:
 *                     quote_char = NO_CHAR             # <<<<<<<<<<<<<<
 *         elif c in '\'"':
 *             quote_char = c
 */
        /*else*/ {
          __pyx_v_quote_char = __pyx_v_NO_CHAR;
        }
        __pyx_L8:;

        /* "Cython/Compiler/Parsing.py":1049
 *             if c == '\\':
 *                 i += 1
 *             elif c == quote_char:             # <<<<<<<<<<<<<<
 *                 if in_triple_quotes:
 *                     if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 */
      }
      __pyx_L7:;

      /* "Cython/Compiler/Parsing.py":1046
 *         c = unicode_value[i]
 * 
 *         if quote_char != NO_CHAR:             # <<<<<<<<<<<<<<
 *             if c == '\\':
 *                 i += 1
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1057
 *                 else:
 *                     quote_char = NO_CHAR
 *         elif c in '\'"':             # <<<<<<<<<<<<<<
 *             quote_char = c
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 */
    switch (__pyx_v_c) {
      case 34:
      case 39:
      __pyx_t_2 = 1;
      break;
      default:
      __pyx_t_2 = 0;
      break;
    }
    __pyx_t_6 = (__pyx_t_2 != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1058
 *                     quote_char = NO_CHAR
 *         elif c in '\'"':
 *             quote_char = c             # <<<<<<<<<<<<<<
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                 in_triple_quotes = True
 */
      __pyx_v_quote_char = __pyx_v_c;

      /* "Cython/Compiler/Parsing.py":1059
 *         elif c in '\'"':
 *             quote_char = c
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:             # <<<<<<<<<<<<<<
 *                 in_triple_quotes = True
 *                 i += 2
 */
      __pyx_t_2 = (((__pyx_v_i + 2) < __pyx_v_size) != 0);
      if (__pyx_t_2) {
      } else {
        __pyx_t_6 = __pyx_t_2;
        goto __pyx_L14_bool_binop_done;
      }
      __pyx_t_1 = (__pyx_v_i + 1);
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1059, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1059, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1059, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
      } else {
        __pyx_t_6 = __pyx_t_2;
        goto __pyx_L14_bool_binop_done;
      }
      __pyx_t_1 = (__pyx_v_i + 2);
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1059, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1059, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1059, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __pyx_t_2;
      __pyx_L14_bool_binop_done:;
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1060
 *             quote_char = c
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                 in_triple_quotes = True             # <<<<<<<<<<<<<<
 *                 i += 2
 *         elif c in '{[(':
 */
        __pyx_v_in_triple_quotes = 1;

        /* "Cython/Compiler/Parsing.py":1061
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                 in_triple_quotes = True
 *                 i += 2             # <<<<<<<<<<<<<<
 *         elif c in '{[(':
 *             nested_depth += 1
 */
        __pyx_v_i = (__pyx_v_i + 2);

        /* "Cython/Compiler/Parsing.py":1059
 *         elif c in '\'"':
 *             quote_char = c
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:             # <<<<<<<<<<<<<<
 *                 in_triple_quotes = True
 *                 i += 2
 */
      }

      /* "Cython/Compiler/Parsing.py":1057
 *                 else:
 *                     quote_char = NO_CHAR
 *         elif c in '\'"':             # <<<<<<<<<<<<<<
 *             quote_char = c
 *             if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1062
 *                 in_triple_quotes = True
 *                 i += 2
 *         elif c in '{[(':             # <<<<<<<<<<<<<<
 *             nested_depth += 1
 *         elif nested_depth != 0 and c in '}])':
 */
    switch (__pyx_v_c) {
      case 40:
      case 91:
      case 0x7B:
      __pyx_t_6 = 1;
      break;
      default:
      __pyx_t_6 = 0;
      break;
    }
    __pyx_t_2 = (__pyx_t_6 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1063
 *                 i += 2
 *         elif c in '{[(':
 *             nested_depth += 1             # <<<<<<<<<<<<<<
 *         elif nested_depth != 0 and c in '}])':
 *             nested_depth -= 1
 */
      __pyx_v_nested_depth = (__pyx_v_nested_depth + 1);

      /* "Cython/Compiler/Parsing.py":1062
 *                 in_triple_quotes = True
 *                 i += 2
 *         elif c in '{[(':             # <<<<<<<<<<<<<<
 *             nested_depth += 1
 *         elif nested_depth != 0 and c in '}])':
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1064
 *         elif c in '{[(':
 *             nested_depth += 1
 *         elif nested_depth != 0 and c in '}])':             # <<<<<<<<<<<<<<
 *             nested_depth -= 1
 *         elif c == '#':
 */
    __pyx_t_6 = ((__pyx_v_nested_depth != 0) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_2 = __pyx_t_6;
      goto __pyx_L17_bool_binop_done;
    }
    switch (__pyx_v_c) {
      case 41:
      case 93:
      case 0x7D:
      __pyx_t_6 = 1;
      break;
      default:
      __pyx_t_6 = 0;
      break;
    }
    __pyx_t_7 = (__pyx_t_6 != 0);
    __pyx_t_2 = __pyx_t_7;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1065
 *             nested_depth += 1
 *         elif nested_depth != 0 and c in '}])':
 *             nested_depth -= 1             # <<<<<<<<<<<<<<
 *         elif c == '#':
 *             s.error("format string cannot include #")
 */
      __pyx_v_nested_depth = (__pyx_v_nested_depth - 1);

      /* "Cython/Compiler/Parsing.py":1064
 *         elif c in '{[(':
 *             nested_depth += 1
 *         elif nested_depth != 0 and c in '}])':             # <<<<<<<<<<<<<<
 *             nested_depth -= 1
 *         elif c == '#':
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1066
 *         elif nested_depth != 0 and c in '}])':
 *             nested_depth -= 1
 *         elif c == '#':             # <<<<<<<<<<<<<<
 *             s.error("format string cannot include #")
 *         elif nested_depth == 0 and c in '!:}':
 */
    __pyx_t_2 = ((__pyx_v_c == 35) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1067
 *             nested_depth -= 1
 *         elif c == '#':
 *             s.error("format string cannot include #")             # <<<<<<<<<<<<<<
 *         elif nested_depth == 0 and c in '!:}':
 *             # allow != as a special case
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":1066
 *         elif nested_depth != 0 and c in '}])':
 *             nested_depth -= 1
 *         elif c == '#':             # <<<<<<<<<<<<<<
 *             s.error("format string cannot include #")
 *         elif nested_depth == 0 and c in '!:}':
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1068
 *         elif c == '#':
 *             s.error("format string cannot include #")
 *         elif nested_depth == 0 and c in '!:}':             # <<<<<<<<<<<<<<
 *             # allow != as a special case
 *             if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':
 */
    __pyx_t_7 = ((__pyx_v_nested_depth == 0) != 0);
    if (__pyx_t_7) {
    } else {
      __pyx_t_2 = __pyx_t_7;
      goto __pyx_L19_bool_binop_done;
    }
    switch (__pyx_v_c) {
      case 33:
      case 58:
      case 0x7D:
      __pyx_t_7 = 1;
      break;
      default:
      __pyx_t_7 = 0;
      break;
    }
    __pyx_t_6 = (__pyx_t_7 != 0);
    __pyx_t_2 = __pyx_t_6;
    __pyx_L19_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1070
 *         elif nested_depth == 0 and c in '!:}':
 *             # allow != as a special case
 *             if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':             # <<<<<<<<<<<<<<
 *                 i += 1
 *                 continue
 */
      __pyx_t_6 = ((__pyx_v_c == 33) != 0);
      if (__pyx_t_6) {
      } else {
        __pyx_t_2 = __pyx_t_6;
        goto __pyx_L22_bool_binop_done;
      }
      __pyx_t_6 = (((__pyx_v_i + 1) < __pyx_v_size) != 0);
      if (__pyx_t_6) {
      } else {
        __pyx_t_2 = __pyx_t_6;
        goto __pyx_L22_bool_binop_done;
      }
      __pyx_t_1 = (__pyx_v_i + 1);
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1070, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1070, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_2 = __pyx_t_6;
      __pyx_L22_bool_binop_done:;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1071
 *             # allow != as a special case
 *             if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':
 *                 i += 1             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
        __pyx_v_i = (__pyx_v_i + 1);

        /* "Cython/Compiler/Parsing.py":1072
 *             if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':
 *                 i += 1
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             terminal_char = c
 */
        goto __pyx_L3_continue;

        /* "Cython/Compiler/Parsing.py":1070
 *         elif nested_depth == 0 and c in '!:}':
 *             # allow != as a special case
 *             if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':             # <<<<<<<<<<<<<<
 *                 i += 1
 *                 continue
 */
      }

      /* "Cython/Compiler/Parsing.py":1074
 *                 continue
 * 
 *             terminal_char = c             # <<<<<<<<<<<<<<
 *             break
 *         i += 1
 */
      __pyx_t_3 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1074, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_terminal_char, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":1075
 * 
 *             terminal_char = c
 *             break             # <<<<<<<<<<<<<<
 *         i += 1
 * 
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":1068
 *         elif c == '#':
 *             s.error("format string cannot include #")
 *         elif nested_depth == 0 and c in '!:}':             # <<<<<<<<<<<<<<
 *             # allow != as a special case
 *             if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':
 */
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":1076
 *             terminal_char = c
 *             break
 *         i += 1             # <<<<<<<<<<<<<<
 * 
 *     # normalise line endings as the parser expects that
 */
    __pyx_v_i = (__pyx_v_i + 1);
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":1079
 * 
 *     # normalise line endings as the parser expects that
 *     expr_str = unicode_value[starting_index:i].replace('\r\n', '\n').replace('\r', '\n')             # <<<<<<<<<<<<<<
 *     expr_pos = (pos[0], pos[1], pos[2] + starting_index + 2)  # TODO: find exact code position (concat, multi-line, ...)
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_unicode_value, __pyx_v_starting_index, __pyx_v_i, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_replace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_replace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_expr_str = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1080
 *     # normalise line endings as the parser expects that
 *     expr_str = unicode_value[starting_index:i].replace('\r\n', '\n').replace('\r', '\n')
 *     expr_pos = (pos[0], pos[1], pos[2] + starting_index + 2)  # TODO: find exact code position (concat, multi-line, ...)             # <<<<<<<<<<<<<<
 * 
 *     if not expr_str.strip():
 */
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_pos, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_starting_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyInt_AddObjC(__pyx_t_10, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_9);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_9 = 0;
  __pyx_v_expr_pos = ((PyObject*)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":1082
 *     expr_pos = (pos[0], pos[1], pos[2] + starting_index + 2)  # TODO: find exact code position (concat, multi-line, ...)
 * 
 *     if not expr_str.strip():             # <<<<<<<<<<<<<<
 *         s.error("empty expression not allowed in f-string")
 * 
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_str, __pyx_n_s_strip); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
    }
  }
  if (__pyx_t_4) {
    __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1082, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    __pyx_t_10 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1082, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_6 = ((!__pyx_t_2) != 0);
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1083
 * 
 *     if not expr_str.strip():
 *         s.error("empty expression not allowed in f-string")             # <<<<<<<<<<<<<<
 * 
 *     if terminal_char == '!':
 */
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1083, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1083, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1082
 *     expr_pos = (pos[0], pos[1], pos[2] + starting_index + 2)  # TODO: find exact code position (concat, multi-line, ...)
 * 
 *     if not expr_str.strip():             # <<<<<<<<<<<<<<
 *         s.error("empty expression not allowed in f-string")
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":1085
 *         s.error("empty expression not allowed in f-string")
 * 
 *     if terminal_char == '!':             # <<<<<<<<<<<<<<
 *         i += 1
 *         if i + 2 > size:
 */
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_terminal_char, __pyx_kp_u__76, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1085, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1086
 * 
 *     if terminal_char == '!':
 *         i += 1             # <<<<<<<<<<<<<<
 *         if i + 2 > size:
 *             s.error("invalid conversion char at end of string")
 */
    __pyx_v_i = (__pyx_v_i + 1);

    /* "Cython/Compiler/Parsing.py":1087
 *     if terminal_char == '!':
 *         i += 1
 *         if i + 2 > size:             # <<<<<<<<<<<<<<
 *             s.error("invalid conversion char at end of string")
 *         conversion_char = unicode_value[i]
 */
    __pyx_t_6 = (((__pyx_v_i + 2) > __pyx_v_size) != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1088
 *         i += 1
 *         if i + 2 > size:
 *             s.error("invalid conversion char at end of string")             # <<<<<<<<<<<<<<
 *         conversion_char = unicode_value[i]
 *         i += 1
 */
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "Cython/Compiler/Parsing.py":1087
 *     if terminal_char == '!':
 *         i += 1
 *         if i + 2 > size:             # <<<<<<<<<<<<<<
 *             s.error("invalid conversion char at end of string")
 *         conversion_char = unicode_value[i]
 */
    }

    /* "Cython/Compiler/Parsing.py":1089
 *         if i + 2 > size:
 *             s.error("invalid conversion char at end of string")
 *         conversion_char = unicode_value[i]             # <<<<<<<<<<<<<<
 *         i += 1
 *         terminal_char = unicode_value[i]
 */
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1089, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF_SET(__pyx_v_conversion_char, __pyx_t_10);
    __pyx_t_10 = 0;

    /* "Cython/Compiler/Parsing.py":1090
 *             s.error("invalid conversion char at end of string")
 *         conversion_char = unicode_value[i]
 *         i += 1             # <<<<<<<<<<<<<<
 *         terminal_char = unicode_value[i]
 * 
 */
    __pyx_v_i = (__pyx_v_i + 1);

    /* "Cython/Compiler/Parsing.py":1091
 *         conversion_char = unicode_value[i]
 *         i += 1
 *         terminal_char = unicode_value[i]             # <<<<<<<<<<<<<<
 * 
 *     if terminal_char == ':':
 */
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF_SET(__pyx_v_terminal_char, __pyx_t_10);
    __pyx_t_10 = 0;

    /* "Cython/Compiler/Parsing.py":1085
 *         s.error("empty expression not allowed in f-string")
 * 
 *     if terminal_char == '!':             # <<<<<<<<<<<<<<
 *         i += 1
 *         if i + 2 > size:
 */
  }

  /* "Cython/Compiler/Parsing.py":1093
 *         terminal_char = unicode_value[i]
 * 
 *     if terminal_char == ':':             # <<<<<<<<<<<<<<
 *         in_triple_quotes = False
 *         in_string = False
 */
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_terminal_char, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1093, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1094
 * 
 *     if terminal_char == ':':
 *         in_triple_quotes = False             # <<<<<<<<<<<<<<
 *         in_string = False
 *         nested_depth = 0
 */
    __pyx_v_in_triple_quotes = 0;

    /* "Cython/Compiler/Parsing.py":1095
 *     if terminal_char == ':':
 *         in_triple_quotes = False
 *         in_string = False             # <<<<<<<<<<<<<<
 *         nested_depth = 0
 *         start_format_spec = i + 1
 */
    __pyx_v_in_string = 0;

    /* "Cython/Compiler/Parsing.py":1096
 *         in_triple_quotes = False
 *         in_string = False
 *         nested_depth = 0             # <<<<<<<<<<<<<<
 *         start_format_spec = i + 1
 *         while True:
 */
    __pyx_v_nested_depth = 0;

    /* "Cython/Compiler/Parsing.py":1097
 *         in_string = False
 *         nested_depth = 0
 *         start_format_spec = i + 1             # <<<<<<<<<<<<<<
 *         while True:
 *             if i >= size:
 */
    __pyx_v_start_format_spec = (__pyx_v_i + 1);

    /* "Cython/Compiler/Parsing.py":1098
 *         nested_depth = 0
 *         start_format_spec = i + 1
 *         while True:             # <<<<<<<<<<<<<<
 *             if i >= size:
 *                 s.error("missing '}' in format specifier")
 */
    while (1) {

      /* "Cython/Compiler/Parsing.py":1099
 *         start_format_spec = i + 1
 *         while True:
 *             if i >= size:             # <<<<<<<<<<<<<<
 *                 s.error("missing '}' in format specifier")
 *             c = unicode_value[i]
 */
      __pyx_t_6 = ((__pyx_v_i >= __pyx_v_size) != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1100
 *         while True:
 *             if i >= size:
 *                 s.error("missing '}' in format specifier")             # <<<<<<<<<<<<<<
 *             c = unicode_value[i]
 *             if not in_triple_quotes and not in_string:
 */
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__78, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "Cython/Compiler/Parsing.py":1099
 *         start_format_spec = i + 1
 *         while True:
 *             if i >= size:             # <<<<<<<<<<<<<<
 *                 s.error("missing '}' in format specifier")
 *             c = unicode_value[i]
 */
      }

      /* "Cython/Compiler/Parsing.py":1101
 *             if i >= size:
 *                 s.error("missing '}' in format specifier")
 *             c = unicode_value[i]             # <<<<<<<<<<<<<<
 *             if not in_triple_quotes and not in_string:
 *                 if c == '{':
 */
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_5 = __Pyx_PyObject_AsPy_UCS4(__pyx_t_9); if (unlikely((__pyx_t_5 == (Py_UCS4)-1) && PyErr_Occurred())) __PYX_ERR(0, 1101, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_v_c = __pyx_t_5;

      /* "Cython/Compiler/Parsing.py":1102
 *                 s.error("missing '}' in format specifier")
 *             c = unicode_value[i]
 *             if not in_triple_quotes and not in_string:             # <<<<<<<<<<<<<<
 *                 if c == '{':
 *                     nested_depth += 1
 */
      __pyx_t_2 = ((!(__pyx_v_in_triple_quotes != 0)) != 0);
      if (__pyx_t_2) {
      } else {
        __pyx_t_6 = __pyx_t_2;
        goto __pyx_L33_bool_binop_done;
      }
      __pyx_t_2 = ((!(__pyx_v_in_string != 0)) != 0);
      __pyx_t_6 = __pyx_t_2;
      __pyx_L33_bool_binop_done:;
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1103
 *             c = unicode_value[i]
 *             if not in_triple_quotes and not in_string:
 *                 if c == '{':             # <<<<<<<<<<<<<<
 *                     nested_depth += 1
 *                 elif c == '}':
 */
        switch (__pyx_v_c) {
          case 0x7B:

          /* "Cython/Compiler/Parsing.py":1104
 *             if not in_triple_quotes and not in_string:
 *                 if c == '{':
 *                     nested_depth += 1             # <<<<<<<<<<<<<<
 *                 elif c == '}':
 *                     if nested_depth > 0:
 */
          __pyx_v_nested_depth = (__pyx_v_nested_depth + 1);

          /* "Cython/Compiler/Parsing.py":1103
 *             c = unicode_value[i]
 *             if not in_triple_quotes and not in_string:
 *                 if c == '{':             # <<<<<<<<<<<<<<
 *                     nested_depth += 1
 *                 elif c == '}':
 */
          break;

          /* "Cython/Compiler/Parsing.py":1105
 *                 if c == '{':
 *                     nested_depth += 1
 *                 elif c == '}':             # <<<<<<<<<<<<<<
 *                     if nested_depth > 0:
 *                         nested_depth -= 1
 */
          case 0x7D:

          /* "Cython/Compiler/Parsing.py":1106
 *                     nested_depth += 1
 *                 elif c == '}':
 *                     if nested_depth > 0:             # <<<<<<<<<<<<<<
 *                         nested_depth -= 1
 *                     else:
 */
          __pyx_t_6 = ((__pyx_v_nested_depth > 0) != 0);
          if (__pyx_t_6) {

            /* "Cython/Compiler/Parsing.py":1107
 *                 elif c == '}':
 *                     if nested_depth > 0:
 *                         nested_depth -= 1             # <<<<<<<<<<<<<<
 *                     else:
 *                         terminal_char = c
 */
            __pyx_v_nested_depth = (__pyx_v_nested_depth - 1);

            /* "Cython/Compiler/Parsing.py":1106
 *                     nested_depth += 1
 *                 elif c == '}':
 *                     if nested_depth > 0:             # <<<<<<<<<<<<<<
 *                         nested_depth -= 1
 *                     else:
 */
            goto __pyx_L35;
          }

          /* "Cython/Compiler/Parsing.py":1109
 *                         nested_depth -= 1
 *                     else:
 *                         terminal_char = c             # <<<<<<<<<<<<<<
 *                         break
 *             if c in '\'"':
 */
          /*else*/ {
            __pyx_t_9 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF_SET(__pyx_v_terminal_char, __pyx_t_9);
            __pyx_t_9 = 0;

            /* "Cython/Compiler/Parsing.py":1110
 *                     else:
 *                         terminal_char = c
 *                         break             # <<<<<<<<<<<<<<
 *             if c in '\'"':
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 */
            goto __pyx_L30_break;
          }
          __pyx_L35:;

          /* "Cython/Compiler/Parsing.py":1105
 *                 if c == '{':
 *                     nested_depth += 1
 *                 elif c == '}':             # <<<<<<<<<<<<<<
 *                     if nested_depth > 0:
 *                         nested_depth -= 1
 */
          break;
          default: break;
        }

        /* "Cython/Compiler/Parsing.py":1102
 *                 s.error("missing '}' in format specifier")
 *             c = unicode_value[i]
 *             if not in_triple_quotes and not in_string:             # <<<<<<<<<<<<<<
 *                 if c == '{':
 *                     nested_depth += 1
 */
      }

      /* "Cython/Compiler/Parsing.py":1111
 *                         terminal_char = c
 *                         break
 *             if c in '\'"':             # <<<<<<<<<<<<<<
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                     in_triple_quotes = not in_triple_quotes
 */
      switch (__pyx_v_c) {
        case 34:
        case 39:

        /* "Cython/Compiler/Parsing.py":1112
 *                         break
 *             if c in '\'"':
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:             # <<<<<<<<<<<<<<
 *                     in_triple_quotes = not in_triple_quotes
 *                     i += 2
 */
        __pyx_t_2 = ((!(__pyx_v_in_string != 0)) != 0);
        if (__pyx_t_2) {
        } else {
          __pyx_t_6 = __pyx_t_2;
          goto __pyx_L37_bool_binop_done;
        }
        __pyx_t_2 = (((__pyx_v_i + 2) < __pyx_v_size) != 0);
        if (__pyx_t_2) {
        } else {
          __pyx_t_6 = __pyx_t_2;
          goto __pyx_L37_bool_binop_done;
        }
        __pyx_t_1 = (__pyx_v_i + 1);
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_t_10, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1112, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_2) {
        } else {
          __pyx_t_6 = __pyx_t_2;
          goto __pyx_L37_bool_binop_done;
        }
        __pyx_t_1 = (__pyx_v_i + 2);
        __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_unicode_value, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_9 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_10, __pyx_t_9, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1112, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_6 = __pyx_t_2;
        __pyx_L37_bool_binop_done:;
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":1113
 *             if c in '\'"':
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                     in_triple_quotes = not in_triple_quotes             # <<<<<<<<<<<<<<
 *                     i += 2
 *                 elif not in_triple_quotes:
 */
          __pyx_v_in_triple_quotes = (!(__pyx_v_in_triple_quotes != 0));

          /* "Cython/Compiler/Parsing.py":1114
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                     in_triple_quotes = not in_triple_quotes
 *                     i += 2             # <<<<<<<<<<<<<<
 *                 elif not in_triple_quotes:
 *                     in_string = not in_string
 */
          __pyx_v_i = (__pyx_v_i + 2);

          /* "Cython/Compiler/Parsing.py":1112
 *                         break
 *             if c in '\'"':
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:             # <<<<<<<<<<<<<<
 *                     in_triple_quotes = not in_triple_quotes
 *                     i += 2
 */
          goto __pyx_L36;
        }

        /* "Cython/Compiler/Parsing.py":1115
 *                     in_triple_quotes = not in_triple_quotes
 *                     i += 2
 *                 elif not in_triple_quotes:             # <<<<<<<<<<<<<<
 *                     in_string = not in_string
 *             i += 1
 */
        __pyx_t_6 = ((!(__pyx_v_in_triple_quotes != 0)) != 0);
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":1116
 *                     i += 2
 *                 elif not in_triple_quotes:
 *                     in_string = not in_string             # <<<<<<<<<<<<<<
 *             i += 1
 * 
 */
          __pyx_v_in_string = (!(__pyx_v_in_string != 0));

          /* "Cython/Compiler/Parsing.py":1115
 *                     in_triple_quotes = not in_triple_quotes
 *                     i += 2
 *                 elif not in_triple_quotes:             # <<<<<<<<<<<<<<
 *                     in_string = not in_string
 *             i += 1
 */
        }
        __pyx_L36:;

        /* "Cython/Compiler/Parsing.py":1111
 *                         terminal_char = c
 *                         break
 *             if c in '\'"':             # <<<<<<<<<<<<<<
 *                 if not in_string and i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
 *                     in_triple_quotes = not in_triple_quotes
 */
        break;
        default: break;
      }

      /* "Cython/Compiler/Parsing.py":1117
 *                 elif not in_triple_quotes:
 *                     in_string = not in_string
 *             i += 1             # <<<<<<<<<<<<<<
 * 
 *         format_spec_str = unicode_value[start_format_spec:i]
 */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L30_break:;

    /* "Cython/Compiler/Parsing.py":1119
 *             i += 1
 * 
 *         format_spec_str = unicode_value[start_format_spec:i]             # <<<<<<<<<<<<<<
 * 
 *     if terminal_char != '}':
 */
    __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_unicode_value, __pyx_v_start_format_spec, __pyx_v_i, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF_SET(__pyx_v_format_spec_str, __pyx_t_9);
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1093
 *         terminal_char = unicode_value[i]
 * 
 *     if terminal_char == ':':             # <<<<<<<<<<<<<<
 *         in_triple_quotes = False
 *         in_string = False
 */
  }

  /* "Cython/Compiler/Parsing.py":1121
 *         format_spec_str = unicode_value[start_format_spec:i]
 * 
 *     if terminal_char != '}':             # <<<<<<<<<<<<<<
 *         s.error("missing '}' in format string expression', found '%s'" % terminal_char)
 * 
 */
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_terminal_char, __pyx_kp_u__67, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1121, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1122
 * 
 *     if terminal_char != '}':
 *         s.error("missing '}' in format string expression', found '%s'" % terminal_char)             # <<<<<<<<<<<<<<
 * 
 *     # parse the expression as if it was surrounded by parentheses
 */
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_missing_in_format_string_express_2, __pyx_v_terminal_char); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    if (!__pyx_t_3) {
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1122, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_9);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4};
        __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1122, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4};
        __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1122, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1122, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1122, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1121
 *         format_spec_str = unicode_value[start_format_spec:i]
 * 
 *     if terminal_char != '}':             # <<<<<<<<<<<<<<
 *         s.error("missing '}' in format string expression', found '%s'" % terminal_char)
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":1125
 * 
 *     # parse the expression as if it was surrounded by parentheses
 *     buf = StringIO('(%s)' % expr_str)             # <<<<<<<<<<<<<<
 *     scanner = PyrexScanner(buf, expr_pos[0], parent_scanner=s, source_encoding=s.source_encoding, initial_pos=expr_pos)
 *     expr = p_testlist(scanner)  # TODO is testlist right here?
 */
  __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_StringIO); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_s, __pyx_v_expr_str); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
    }
  }
  if (!__pyx_t_4) {
    __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1125, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_9);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_10)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_8};
      __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1125, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_8};
      __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1125, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1125, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1125, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_v_buf = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":1126
 *     # parse the expression as if it was surrounded by parentheses
 *     buf = StringIO('(%s)' % expr_str)
 *     scanner = PyrexScanner(buf, expr_pos[0], parent_scanner=s, source_encoding=s.source_encoding, initial_pos=expr_pos)             # <<<<<<<<<<<<<<
 *     expr = p_testlist(scanner)  # TODO is testlist right here?
 * 
 */
  __pyx_t_9 = __Pyx_GetItemInt_Tuple(__pyx_v_expr_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_INCREF(__pyx_v_buf);
  __Pyx_GIVEREF(__pyx_v_buf);
  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_buf);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_parent_scanner, ((PyObject *)__pyx_v_s)) < 0) __PYX_ERR(0, 1126, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_source_encoding, __pyx_v_s->source_encoding) < 0) __PYX_ERR(0, 1126, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_initial_pos, __pyx_v_expr_pos) < 0) __PYX_ERR(0, 1126, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner), __pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_scanner = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1127
 *     buf = StringIO('(%s)' % expr_str)
 *     scanner = PyrexScanner(buf, expr_pos[0], parent_scanner=s, source_encoding=s.source_encoding, initial_pos=expr_pos)
 *     expr = p_testlist(scanner)  # TODO is testlist right here?             # <<<<<<<<<<<<<<
 * 
 *     # validate the conversion char
 */
  __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_scanner); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_expr = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1130
 * 
 *     # validate the conversion char
 *     if conversion_char is not None and not ExprNodes.FormattedValueNode.find_conversion_func(conversion_char):             # <<<<<<<<<<<<<<
 *         s.error("invalid conversion character '%s'" % conversion_char)
 * 
 */
  __pyx_t_2 = (__pyx_v_conversion_char != Py_None);
  __pyx_t_7 = (__pyx_t_2 != 0);
  if (__pyx_t_7) {
  } else {
    __pyx_t_6 = __pyx_t_7;
    goto __pyx_L43_bool_binop_done;
  }
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_FormattedValueNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_find_conversion_func); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
    }
  }
  if (!__pyx_t_9) {
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_conversion_char); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_10)) {
      PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_conversion_char};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1130, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
      PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_conversion_char};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1130, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL;
      __Pyx_INCREF(__pyx_v_conversion_char);
      __Pyx_GIVEREF(__pyx_v_conversion_char);
      PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_conversion_char);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = ((!__pyx_t_7) != 0);
  __pyx_t_6 = __pyx_t_2;
  __pyx_L43_bool_binop_done:;
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1131
 *     # validate the conversion char
 *     if conversion_char is not None and not ExprNodes.FormattedValueNode.find_conversion_func(conversion_char):
 *         s.error("invalid conversion character '%s'" % conversion_char)             # <<<<<<<<<<<<<<
 * 
 *     # the format spec is itself treated like an f-string
 */
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_invalid_conversion_character_s, __pyx_v_conversion_char); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    if (!__pyx_t_9) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1131, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_8};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1131, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_8};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1131, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1131, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL;
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_8);
        __pyx_t_8 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1131, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1130
 * 
 *     # validate the conversion char
 *     if conversion_char is not None and not ExprNodes.FormattedValueNode.find_conversion_func(conversion_char):             # <<<<<<<<<<<<<<
 *         s.error("invalid conversion character '%s'" % conversion_char)
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":1134
 * 
 *     # the format spec is itself treated like an f-string
 *     if format_spec_str:             # <<<<<<<<<<<<<<
 *         format_spec = ExprNodes.JoinedStrNode(pos, values=p_f_string(s, format_spec_str, pos))
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_format_spec_str); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1134, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1135
 *     # the format spec is itself treated like an f-string
 *     if format_spec_str:
 *         format_spec = ExprNodes.JoinedStrNode(pos, values=p_f_string(s, format_spec_str, pos))             # <<<<<<<<<<<<<<
 * 
 *     return i + 1, ExprNodes.FormattedValueNode(
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_JoinedStrNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_f_string(__pyx_v_s, __pyx_v_format_spec_str, __pyx_v_pos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_values, __pyx_t_8) < 0) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_format_spec, __pyx_t_8);
    __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1134
 * 
 *     # the format spec is itself treated like an f-string
 *     if format_spec_str:             # <<<<<<<<<<<<<<
 *         format_spec = ExprNodes.JoinedStrNode(pos, values=p_f_string(s, format_spec_str, pos))
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":1137
 *         format_spec = ExprNodes.JoinedStrNode(pos, values=p_f_string(s, format_spec_str, pos))
 * 
 *     return i + 1, ExprNodes.FormattedValueNode(             # <<<<<<<<<<<<<<
 *         s.position(), value=expr, conversion_char=conversion_char, format_spec=format_spec)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyInt_FromSsize_t((__pyx_v_i + 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_FormattedValueNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "Cython/Compiler/Parsing.py":1138
 * 
 *     return i + 1, ExprNodes.FormattedValueNode(
 *         s.position(), value=expr, conversion_char=conversion_char, format_spec=format_spec)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_10 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);

  /* "Cython/Compiler/Parsing.py":1137
 *         format_spec = ExprNodes.JoinedStrNode(pos, values=p_f_string(s, format_spec_str, pos))
 * 
 *     return i + 1, ExprNodes.FormattedValueNode(             # <<<<<<<<<<<<<<
 *         s.position(), value=expr, conversion_char=conversion_char, format_spec=format_spec)
 * 
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);
  __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":1138
 * 
 *     return i + 1, ExprNodes.FormattedValueNode(
 *         s.position(), value=expr, conversion_char=conversion_char, format_spec=format_spec)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_value, __pyx_v_expr) < 0) __PYX_ERR(0, 1138, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_conversion_char, __pyx_v_conversion_char) < 0) __PYX_ERR(0, 1138, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_format_spec, __pyx_v_format_spec) < 0) __PYX_ERR(0, 1138, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1137
 *         format_spec = ExprNodes.JoinedStrNode(pos, values=p_f_string(s, format_spec_str, pos))
 * 
 *     return i + 1, ExprNodes.FormattedValueNode(             # <<<<<<<<<<<<<<
 *         s.position(), value=expr, conversion_char=conversion_char, format_spec=format_spec)
 * 
 */
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_r = ((PyObject*)__pyx_t_10);
  __pyx_t_10 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1028
 * 
 * 
 * def p_f_string_expr(s, unicode_value, pos, starting_index):             # <<<<<<<<<<<<<<
 *     # Parses a {}-delimited expression inside an f-string. Returns a FormattedValueNode
 *     # and the index in the string that follows the expression.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_f_string_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_conversion_char);
  __Pyx_XDECREF(__pyx_v_terminal_char);
  __Pyx_XDECREF(__pyx_v_format_spec);
  __Pyx_XDECREF(__pyx_v_format_spec_str);
  __Pyx_XDECREF(__pyx_v_expr_str);
  __Pyx_XDECREF(__pyx_v_expr_pos);
  __Pyx_XDECREF(__pyx_v_buf);
  __Pyx_XDECREF((PyObject *)__pyx_v_scanner);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1148
 * # comp_if       ::=     "if" test [comp_iter]
 * 
 * def p_list_maker(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_list_maker(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_append = NULL;
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list __pyx_t_7;
  __Pyx_RefNannySetupContext("p_list_maker", 0);

  /* "Cython/Compiler/Parsing.py":1150
 * def p_list_maker(s):
 *     # s.sy == '['
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     if s.sy == ']':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1151
 *     # s.sy == '['
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy == ']':
 *         s.expect(']')
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1152
 *     pos = s.position()
 *     s.next()
 *     if s.sy == ']':             # <<<<<<<<<<<<<<
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args=[])
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__43, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1152, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1153
 *     s.next()
 *     if s.sy == ']':
 *         s.expect(']')             # <<<<<<<<<<<<<<
 *         return ExprNodes.ListNode(pos, args=[])
 * 
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 1153, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1154
 *     if s.sy == ']':
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args=[])             # <<<<<<<<<<<<<<
 * 
 *     expr = p_test_or_starred_expr(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ListNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_t_5) < 0) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1152
 *     pos = s.position()
 *     s.next()
 *     if s.sy == ']':             # <<<<<<<<<<<<<<
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args=[])
 */
  }

  /* "Cython/Compiler/Parsing.py":1156
 *         return ExprNodes.ListNode(pos, args=[])
 * 
 *     expr = p_test_or_starred_expr(s)             # <<<<<<<<<<<<<<
 *     if s.sy == 'for':
 *         if expr.is_starred:
 */
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_expr = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":1157
 * 
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         if expr.is_starred:
 *             s.error("iterable unpacking cannot be used in comprehension")
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1157, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1158
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == 'for':
 *         if expr.is_starred:             # <<<<<<<<<<<<<<
 *             s.error("iterable unpacking cannot be used in comprehension")
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_is_starred); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1159
 *     if s.sy == 'for':
 *         if expr.is_starred:
 *             s.error("iterable unpacking cannot be used in comprehension")             # <<<<<<<<<<<<<<
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 *         loop = p_comp_for(s, append)
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1158
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == 'for':
 *         if expr.is_starred:             # <<<<<<<<<<<<<<
 *             s.error("iterable unpacking cannot be used in comprehension")
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 */
    }

    /* "Cython/Compiler/Parsing.py":1160
 *         if expr.is_starred:
 *             s.error("iterable unpacking cannot be used in comprehension")
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)             # <<<<<<<<<<<<<<
 *         loop = p_comp_for(s, append)
 *         s.expect(']')
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ComprehensionAppendNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_expr, __pyx_v_expr) < 0) __PYX_ERR(0, 1160, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_append = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1161
 *             s.error("iterable unpacking cannot be used in comprehension")
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 *         loop = p_comp_for(s, append)             # <<<<<<<<<<<<<<
 *         s.expect(']')
 *         return ExprNodes.ComprehensionNode(
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(__pyx_v_s, __pyx_v_append); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1161, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_loop = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1162
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 *         loop = p_comp_for(s, append)
 *         s.expect(']')             # <<<<<<<<<<<<<<
 *         return ExprNodes.ComprehensionNode(
 *             pos, loop=loop, append=append, type=Builtin.list_type,
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 1162, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1163
 *         loop = p_comp_for(s, append)
 *         s.expect(']')
 *         return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *             pos, loop=loop, append=append, type=Builtin.list_type,
 *             # list comprehensions leak their loop variable in Py2
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ComprehensionNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":1164
 *         s.expect(']')
 *         return ExprNodes.ComprehensionNode(
 *             pos, loop=loop, append=append, type=Builtin.list_type,             # <<<<<<<<<<<<<<
 *             # list comprehensions leak their loop variable in Py2
 *             has_local_scope=s.context.language_level >= 3)
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1164, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 1164, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_append, __pyx_v_append) < 0) __PYX_ERR(0, 1164, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_list_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1164, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_type, __pyx_t_4) < 0) __PYX_ERR(0, 1164, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1166
 *             pos, loop=loop, append=append, type=Builtin.list_type,
 *             # list comprehensions leak their loop variable in Py2
 *             has_local_scope=s.context.language_level >= 3)             # <<<<<<<<<<<<<<
 * 
 *     # (merged) list literal
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_has_local_scope, __pyx_t_6) < 0) __PYX_ERR(0, 1164, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1163
 *         loop = p_comp_for(s, append)
 *         s.expect(']')
 *         return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *             pos, loop=loop, append=append, type=Builtin.list_type,
 *             # list comprehensions leak their loop variable in Py2
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1157
 * 
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         if expr.is_starred:
 *             s.error("iterable unpacking cannot be used in comprehension")
 */
  }

  /* "Cython/Compiler/Parsing.py":1169
 * 
 *     # (merged) list literal
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1169, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1170
 *     # (merged) list literal
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *     else:
 */
    __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1171
 *     if s.sy == ',':
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)             # <<<<<<<<<<<<<<
 *     else:
 *         exprs = [expr]
 */
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.expr = __pyx_v_expr;
    __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_exprs = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1169
 * 
 *     # (merged) list literal
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 */
    goto __pyx_L6;
  }

  /* "Cython/Compiler/Parsing.py":1173
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *     else:
 *         exprs = [expr]             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     return ExprNodes.ListNode(pos, args=exprs)
 */
  /*else*/ {
    __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_expr);
    __pyx_v_exprs = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":1174
 *     else:
 *         exprs = [expr]
 *     s.expect(']')             # <<<<<<<<<<<<<<
 *     return ExprNodes.ListNode(pos, args=exprs)
 * 
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 1174, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1175
 *         exprs = [expr]
 *     s.expect(']')
 *     return ExprNodes.ListNode(pos, args=exprs)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ListNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_exprs) < 0) __PYX_ERR(0, 1175, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1148
 * # comp_if       ::=     "if" test [comp_iter]
 * 
 * def p_list_maker(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_list_maker", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_append);
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1178
 * 
 * 
 * def p_comp_iter(s, body):             # <<<<<<<<<<<<<<
 *     if s.sy == 'for':
 *         return p_comp_for(s, body)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comp_iter(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_body) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_comp_iter", 0);

  /* "Cython/Compiler/Parsing.py":1179
 * 
 * def p_comp_iter(s, body):
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         return p_comp_for(s, body)
 *     elif s.sy == 'if':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1180
 * def p_comp_iter(s, body):
 *     if s.sy == 'for':
 *         return p_comp_for(s, body)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'if':
 *         return p_comp_if(s, body)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(__pyx_v_s, __pyx_v_body); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1179
 * 
 * def p_comp_iter(s, body):
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         return p_comp_for(s, body)
 *     elif s.sy == 'if':
 */
  }

  /* "Cython/Compiler/Parsing.py":1181
 *     if s.sy == 'for':
 *         return p_comp_for(s, body)
 *     elif s.sy == 'if':             # <<<<<<<<<<<<<<
 *         return p_comp_if(s, body)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_if, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1181, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1182
 *         return p_comp_for(s, body)
 *     elif s.sy == 'if':
 *         return p_comp_if(s, body)             # <<<<<<<<<<<<<<
 *     else:
 *         # insert the 'append' operation into the loop
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_if(__pyx_v_s, __pyx_v_body); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1181
 *     if s.sy == 'for':
 *         return p_comp_for(s, body)
 *     elif s.sy == 'if':             # <<<<<<<<<<<<<<
 *         return p_comp_if(s, body)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":1185
 *     else:
 *         # insert the 'append' operation into the loop
 *         return body             # <<<<<<<<<<<<<<
 * 
 * def p_comp_for(s, body):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_body);
    __pyx_r = __pyx_v_body;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1178
 * 
 * 
 * def p_comp_iter(s, body):             # <<<<<<<<<<<<<<
 *     if s.sy == 'for':
 *         return p_comp_for(s, body)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_comp_iter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1187
 *         return body
 * 
 * def p_comp_for(s, body):             # <<<<<<<<<<<<<<
 *     # s.sy == 'for'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_body) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kw = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_comp_for", 0);

  /* "Cython/Compiler/Parsing.py":1189
 * def p_comp_for(s, body):
 *     # s.sy == 'for'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=False)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1190
 *     # s.sy == 'for'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     kw = p_for_bounds(s, allow_testlist=False)
 *     kw.update(else_clause = None, body = p_comp_iter(s, body))
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1191
 *     pos = s.position()
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=False)             # <<<<<<<<<<<<<<
 *     kw.update(else_clause = None, body = p_comp_iter(s, body))
 *     return Nodes.ForStatNode(pos, **kw)
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.allow_testlist = 0;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_bounds(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_kw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1192
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=False)
 *     kw.update(else_clause = None, body = p_comp_iter(s, body))             # <<<<<<<<<<<<<<
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_kw, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, Py_None) < 0) __PYX_ERR(0, 1192, __pyx_L1_error)
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_iter(__pyx_v_s, __pyx_v_body); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_t_4) < 0) __PYX_ERR(0, 1192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":1193
 *     kw = p_for_bounds(s, allow_testlist=False)
 *     kw.update(else_clause = None, body = p_comp_iter(s, body))
 *     return Nodes.ForStatNode(pos, **kw)             # <<<<<<<<<<<<<<
 * 
 * def p_comp_if(s, body):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ForStatNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  if (unlikely(__pyx_v_kw == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
    __PYX_ERR(0, 1193, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_v_kw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1187
 *         return body
 * 
 * def p_comp_for(s, body):             # <<<<<<<<<<<<<<
 *     # s.sy == 'for'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_comp_for", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kw);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1195
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 * def p_comp_if(s, body):             # <<<<<<<<<<<<<<
 *     # s.sy == 'if'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_comp_if(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_body) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_test = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_comp_if", 0);

  /* "Cython/Compiler/Parsing.py":1197
 * def p_comp_if(s, body):
 *     # s.sy == 'if'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     test = p_test_nocond(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1198
 *     # s.sy == 'if'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     test = p_test_nocond(s)
 *     return Nodes.IfStatNode(pos,
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1199
 *     pos = s.position()
 *     s.next()
 *     test = p_test_nocond(s)             # <<<<<<<<<<<<<<
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_nocond(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_test = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1200
 *     s.next()
 *     test = p_test_nocond(s)
 *     return Nodes.IfStatNode(pos,             # <<<<<<<<<<<<<<
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,
 *                                          body = p_comp_iter(s, body))],
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_IfStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":1201
 *     test = p_test_nocond(s)
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,             # <<<<<<<<<<<<<<
 *                                          body = p_comp_iter(s, body))],
 *         else_clause = None )
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_IfClauseNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_condition, __pyx_v_test) < 0) __PYX_ERR(0, 1201, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1202
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,
 *                                          body = p_comp_iter(s, body))],             # <<<<<<<<<<<<<<
 *         else_clause = None )
 * 
 */
  __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_iter(__pyx_v_s, __pyx_v_body); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_t_7) < 0) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":1201
 *     test = p_test_nocond(s)
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,             # <<<<<<<<<<<<<<
 *                                          body = p_comp_iter(s, body))],
 *         else_clause = None )
 */
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_if_clauses, __pyx_t_6) < 0) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":1203
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,
 *                                          body = p_comp_iter(s, body))],
 *         else_clause = None )             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, Py_None) < 0) __PYX_ERR(0, 1201, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1200
 *     s.next()
 *     test = p_test_nocond(s)
 *     return Nodes.IfStatNode(pos,             # <<<<<<<<<<<<<<
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,
 *                                          body = p_comp_iter(s, body))],
 */
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1195
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 * def p_comp_if(s, body):             # <<<<<<<<<<<<<<
 *     # s.sy == 'if'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_comp_if", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_test);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1212
 * #                   (comp_for | (',' (test | star_expr))* [','])) )
 * 
 * def p_dict_or_set_maker(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '{'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_dict_or_set_maker(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_parts = NULL;
  long __pyx_v_target_type;
  int __pyx_v_last_was_simple_item;
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_comprehension_type = NULL;
  PyObject *__pyx_v_append = NULL;
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_v_items = NULL;
  PyObject *__pyx_v_set_items = NULL;
  PyObject *__pyx_v_part = NULL;
  PyObject *__pyx_v_dict_items = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  long __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  __Pyx_RefNannySetupContext("p_dict_or_set_maker", 0);

  /* "Cython/Compiler/Parsing.py":1214
 * def p_dict_or_set_maker(s):
 *     # s.sy == '{'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     if s.sy == '}':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1215
 *     # s.sy == '{'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy == '}':
 *         s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1216
 *     pos = s.position()
 *     s.next()
 *     if s.sy == '}':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.DictNode(pos, key_value_pairs=[])
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__67, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1216, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1217
 *     s.next()
 *     if s.sy == '}':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.DictNode(pos, key_value_pairs=[])
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1218
 *     if s.sy == '}':
 *         s.next()
 *         return ExprNodes.DictNode(pos, key_value_pairs=[])             # <<<<<<<<<<<<<<
 * 
 *     parts = []
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key_value_pairs, __pyx_t_5) < 0) __PYX_ERR(0, 1218, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1216
 *     pos = s.position()
 *     s.next()
 *     if s.sy == '}':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.DictNode(pos, key_value_pairs=[])
 */
  }

  /* "Cython/Compiler/Parsing.py":1220
 *         return ExprNodes.DictNode(pos, key_value_pairs=[])
 * 
 *     parts = []             # <<<<<<<<<<<<<<
 *     target_type = 0
 *     last_was_simple_item = False
 */
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_parts = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":1221
 * 
 *     parts = []
 *     target_type = 0             # <<<<<<<<<<<<<<
 *     last_was_simple_item = False
 *     while True:
 */
  __pyx_v_target_type = 0;

  /* "Cython/Compiler/Parsing.py":1222
 *     parts = []
 *     target_type = 0
 *     last_was_simple_item = False             # <<<<<<<<<<<<<<
 *     while True:
 *         if s.sy in ('*', '**'):
 */
  __pyx_v_last_was_simple_item = 0;

  /* "Cython/Compiler/Parsing.py":1223
 *     target_type = 0
 *     last_was_simple_item = False
 *     while True:             # <<<<<<<<<<<<<<
 *         if s.sy in ('*', '**'):
 *             # merged set/dict literal
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":1224
 *     last_was_simple_item = False
 *     while True:
 *         if s.sy in ('*', '**'):             # <<<<<<<<<<<<<<
 *             # merged set/dict literal
 *             if target_type == 0:
 */
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_5 = __pyx_v_s->sy;
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1224, __pyx_L1_error)
    if (!__pyx_t_6) {
    } else {
      __pyx_t_2 = __pyx_t_6;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1224, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_6;
    __pyx_L7_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = (__pyx_t_2 != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1226
 *         if s.sy in ('*', '**'):
 *             # merged set/dict literal
 *             if target_type == 0:             # <<<<<<<<<<<<<<
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'
 *             elif target_type != len(s.sy):
 */
      __pyx_t_6 = ((__pyx_v_target_type == 0) != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1227
 *             # merged set/dict literal
 *             if target_type == 0:
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'             # <<<<<<<<<<<<<<
 *             elif target_type != len(s.sy):
 *                 s.error("unexpected %sitem found in %s literal" % (
 */
        __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1227, __pyx_L1_error)
        if (__pyx_t_6) {
          __pyx_t_7 = 1;
        } else {
          __pyx_t_7 = 2;
        }
        __pyx_v_target_type = __pyx_t_7;

        /* "Cython/Compiler/Parsing.py":1226
 *         if s.sy in ('*', '**'):
 *             # merged set/dict literal
 *             if target_type == 0:             # <<<<<<<<<<<<<<
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'
 *             elif target_type != len(s.sy):
 */
        goto __pyx_L9;
      }

      /* "Cython/Compiler/Parsing.py":1228
 *             if target_type == 0:
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'
 *             elif target_type != len(s.sy):             # <<<<<<<<<<<<<<
 *                 s.error("unexpected %sitem found in %s literal" % (
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 */
      __pyx_t_5 = __pyx_v_s->sy;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1228, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = ((__pyx_v_target_type != __pyx_t_8) != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1229
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'
 *             elif target_type != len(s.sy):
 *                 s.error("unexpected %sitem found in %s literal" % (             # <<<<<<<<<<<<<<
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 *             s.next()
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);

        /* "Cython/Compiler/Parsing.py":1230
 *             elif target_type != len(s.sy):
 *                 s.error("unexpected %sitem found in %s literal" % (
 *                     s.sy, 'set' if target_type == 1 else 'dict'))             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == '*':
 */
        if (((__pyx_v_target_type == 1) != 0)) {
          __Pyx_INCREF(__pyx_n_u_set);
          __pyx_t_3 = __pyx_n_u_set;
        } else {
          __Pyx_INCREF(__pyx_n_u_dict_2);
          __pyx_t_3 = __pyx_n_u_dict_2;
        }
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1230, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_s->sy);
        __Pyx_GIVEREF(__pyx_v_s->sy);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s->sy);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1229
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'
 *             elif target_type != len(s.sy):
 *                 s.error("unexpected %sitem found in %s literal" % (             # <<<<<<<<<<<<<<
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 *             s.next()
 */
        __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unexpected_sitem_found_in_s_lite, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        if (!__pyx_t_1) {
          __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_5);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_3};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_3};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __pyx_t_1 = NULL;
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":1228
 *             if target_type == 0:
 *                 target_type = 1 if s.sy == '*' else 2  # 'stars'
 *             elif target_type != len(s.sy):             # <<<<<<<<<<<<<<
 *                 s.error("unexpected %sitem found in %s literal" % (
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 */
      }
      __pyx_L9:;

      /* "Cython/Compiler/Parsing.py":1231
 *                 s.error("unexpected %sitem found in %s literal" % (
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == '*':
 *                 s.error("expected expression, found '*'")
 */
      __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1232
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 *             s.next()
 *             if s.sy == '*':             # <<<<<<<<<<<<<<
 *                 s.error("expected expression, found '*'")
 *             item = p_starred_expr(s)
 */
      __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1232, __pyx_L1_error)
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1233
 *             s.next()
 *             if s.sy == '*':
 *                 s.error("expected expression, found '*'")             # <<<<<<<<<<<<<<
 *             item = p_starred_expr(s)
 *             parts.append(item)
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1233, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__80, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1233, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":1232
 *                     s.sy, 'set' if target_type == 1 else 'dict'))
 *             s.next()
 *             if s.sy == '*':             # <<<<<<<<<<<<<<
 *                 s.error("expected expression, found '*'")
 *             item = p_starred_expr(s)
 */
      }

      /* "Cython/Compiler/Parsing.py":1234
 *             if s.sy == '*':
 *                 s.error("expected expression, found '*'")
 *             item = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *             parts.append(item)
 *             last_was_simple_item = False
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1234, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1235
 *                 s.error("expected expression, found '*'")
 *             item = p_starred_expr(s)
 *             parts.append(item)             # <<<<<<<<<<<<<<
 *             last_was_simple_item = False
 *         else:
 */
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_v_item); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1235, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1236
 *             item = p_starred_expr(s)
 *             parts.append(item)
 *             last_was_simple_item = False             # <<<<<<<<<<<<<<
 *         else:
 *             item = p_test(s)
 */
      __pyx_v_last_was_simple_item = 0;

      /* "Cython/Compiler/Parsing.py":1224
 *     last_was_simple_item = False
 *     while True:
 *         if s.sy in ('*', '**'):             # <<<<<<<<<<<<<<
 *             # merged set/dict literal
 *             if target_type == 0:
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1238
 *             last_was_simple_item = False
 *         else:
 *             item = p_test(s)             # <<<<<<<<<<<<<<
 *             if target_type == 0:
 *                 target_type = 2 if s.sy == ':' else 1  # dict vs. set
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1239
 *         else:
 *             item = p_test(s)
 *             if target_type == 0:             # <<<<<<<<<<<<<<
 *                 target_type = 2 if s.sy == ':' else 1  # dict vs. set
 *             if target_type == 2:
 */
      __pyx_t_6 = ((__pyx_v_target_type == 0) != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1240
 *             item = p_test(s)
 *             if target_type == 0:
 *                 target_type = 2 if s.sy == ':' else 1  # dict vs. set             # <<<<<<<<<<<<<<
 *             if target_type == 2:
 *                 # dict literal
 */
        __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1240, __pyx_L1_error)
        if (__pyx_t_6) {
          __pyx_t_7 = 2;
        } else {
          __pyx_t_7 = 1;
        }
        __pyx_v_target_type = __pyx_t_7;

        /* "Cython/Compiler/Parsing.py":1239
 *         else:
 *             item = p_test(s)
 *             if target_type == 0:             # <<<<<<<<<<<<<<
 *                 target_type = 2 if s.sy == ':' else 1  # dict vs. set
 *             if target_type == 2:
 */
      }

      /* "Cython/Compiler/Parsing.py":1241
 *             if target_type == 0:
 *                 target_type = 2 if s.sy == ':' else 1  # dict vs. set
 *             if target_type == 2:             # <<<<<<<<<<<<<<
 *                 # dict literal
 *                 s.expect(':')
 */
      __pyx_t_6 = ((__pyx_v_target_type == 2) != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1243
 *             if target_type == 2:
 *                 # dict literal
 *                 s.expect(':')             # <<<<<<<<<<<<<<
 *                 key = item
 *                 value = p_test(s)
 */
        __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__3, NULL); if (unlikely(__pyx_t_6 == -2)) __PYX_ERR(0, 1243, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":1244
 *                 # dict literal
 *                 s.expect(':')
 *                 key = item             # <<<<<<<<<<<<<<
 *                 value = p_test(s)
 *                 item = ExprNodes.DictItemNode(key.pos, key=key, value=value)
 */
        __Pyx_INCREF(__pyx_v_item);
        __Pyx_XDECREF_SET(__pyx_v_key, __pyx_v_item);

        /* "Cython/Compiler/Parsing.py":1245
 *                 s.expect(':')
 *                 key = item
 *                 value = p_test(s)             # <<<<<<<<<<<<<<
 *                 item = ExprNodes.DictItemNode(key.pos, key=key, value=value)
 *             if last_was_simple_item:
 */
        __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1245, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":1246
 *                 key = item
 *                 value = p_test(s)
 *                 item = ExprNodes.DictItemNode(key.pos, key=key, value=value)             # <<<<<<<<<<<<<<
 *             if last_was_simple_item:
 *                 parts[-1].append(item)
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5);
        __pyx_t_5 = 0;
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key, __pyx_v_key) < 0) __PYX_ERR(0, 1246, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 1246, __pyx_L1_error)
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF_SET(__pyx_v_item, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1241
 *             if target_type == 0:
 *                 target_type = 2 if s.sy == ':' else 1  # dict vs. set
 *             if target_type == 2:             # <<<<<<<<<<<<<<
 *                 # dict literal
 *                 s.expect(':')
 */
      }

      /* "Cython/Compiler/Parsing.py":1247
 *                 value = p_test(s)
 *                 item = ExprNodes.DictItemNode(key.pos, key=key, value=value)
 *             if last_was_simple_item:             # <<<<<<<<<<<<<<
 *                 parts[-1].append(item)
 *             else:
 */
      __pyx_t_6 = (__pyx_v_last_was_simple_item != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1248
 *                 item = ExprNodes.DictItemNode(key.pos, key=key, value=value)
 *             if last_was_simple_item:
 *                 parts[-1].append(item)             # <<<<<<<<<<<<<<
 *             else:
 *                 parts.append([item])
 */
        __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_parts, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1248, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_item); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1248, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1247
 *                 value = p_test(s)
 *                 item = ExprNodes.DictItemNode(key.pos, key=key, value=value)
 *             if last_was_simple_item:             # <<<<<<<<<<<<<<
 *                 parts[-1].append(item)
 *             else:
 */
        goto __pyx_L13;
      }

      /* "Cython/Compiler/Parsing.py":1250
 *                 parts[-1].append(item)
 *             else:
 *                 parts.append([item])             # <<<<<<<<<<<<<<
 *                 last_was_simple_item = True
 * 
 */
      /*else*/ {
        __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1250, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_item);
        __Pyx_GIVEREF(__pyx_v_item);
        PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_item);
        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_3); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1250, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1251
 *             else:
 *                 parts.append([item])
 *                 last_was_simple_item = True             # <<<<<<<<<<<<<<
 * 
 *         if s.sy == ',':
 */
        __pyx_v_last_was_simple_item = 1;
      }
      __pyx_L13:;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":1253
 *                 last_was_simple_item = True
 * 
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == '}':
 */
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1253, __pyx_L1_error)
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1254
 * 
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == '}':
 *                 break
 */
      __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":1255
 *         if s.sy == ',':
 *             s.next()
 *             if s.sy == '}':             # <<<<<<<<<<<<<<
 *                 break
 *         else:
 */
      __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__67, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1255, __pyx_L1_error)
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1256
 *             s.next()
 *             if s.sy == '}':
 *                 break             # <<<<<<<<<<<<<<
 *         else:
 *             break
 */
        goto __pyx_L5_break;

        /* "Cython/Compiler/Parsing.py":1255
 *         if s.sy == ',':
 *             s.next()
 *             if s.sy == '}':             # <<<<<<<<<<<<<<
 *                 break
 *         else:
 */
      }

      /* "Cython/Compiler/Parsing.py":1253
 *                 last_was_simple_item = True
 * 
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == '}':
 */
      goto __pyx_L14;
    }

    /* "Cython/Compiler/Parsing.py":1258
 *                 break
 *         else:
 *             break             # <<<<<<<<<<<<<<
 * 
 *     if s.sy == 'for':
 */
    /*else*/ {
      goto __pyx_L5_break;
    }
    __pyx_L14:;
  }
  __pyx_L5_break:;

  /* "Cython/Compiler/Parsing.py":1260
 *             break
 * 
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         # dict/set comprehension
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:
 */
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1260, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1262
 *     if s.sy == 'for':
 *         # dict/set comprehension
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:             # <<<<<<<<<<<<<<
 *             item = parts[0][0]
 *             if target_type == 2:
 */
    __pyx_t_8 = PyList_GET_SIZE(__pyx_v_parts); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1262, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_8 == 1) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_6 = __pyx_t_2;
      goto __pyx_L18_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_parts, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyList_Check(__pyx_t_3); 
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_11 = (__pyx_t_2 != 0);
    if (__pyx_t_11) {
    } else {
      __pyx_t_6 = __pyx_t_11;
      goto __pyx_L18_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_parts, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1262, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_11 = ((__pyx_t_8 == 1) != 0);
    __pyx_t_6 = __pyx_t_11;
    __pyx_L18_bool_binop_done:;
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1263
 *         # dict/set comprehension
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:
 *             item = parts[0][0]             # <<<<<<<<<<<<<<
 *             if target_type == 2:
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 */
      __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_parts, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1264
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:
 *             item = parts[0][0]
 *             if target_type == 2:             # <<<<<<<<<<<<<<
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 *                 comprehension_type = Builtin.dict_type
 */
      __pyx_t_6 = ((__pyx_v_target_type == 2) != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1265
 *             item = parts[0][0]
 *             if target_type == 2:
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)             # <<<<<<<<<<<<<<
 *                 comprehension_type = Builtin.dict_type
 *                 append = ExprNodes.DictComprehensionAppendNode(
 */
        #ifndef CYTHON_WITHOUT_ASSERTIONS
        if (unlikely(!Py_OptimizeFlag)) {
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = PyObject_IsInstance(__pyx_v_item, __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 1265, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!(__pyx_t_6 != 0))) {
            PyErr_SetObject(PyExc_AssertionError, ((PyObject *)Py_TYPE(__pyx_v_item)));
            __PYX_ERR(0, 1265, __pyx_L1_error)
          }
        }
        #endif

        /* "Cython/Compiler/Parsing.py":1266
 *             if target_type == 2:
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 *                 comprehension_type = Builtin.dict_type             # <<<<<<<<<<<<<<
 *                 append = ExprNodes.DictComprehensionAppendNode(
 *                     item.pos, key_expr=item.key, value_expr=item.value)
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_dict_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_v_comprehension_type = __pyx_t_5;
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":1267
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 *                 comprehension_type = Builtin.dict_type
 *                 append = ExprNodes.DictComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *                     item.pos, key_expr=item.key, value_expr=item.value)
 *             else:
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictComprehensionAppendNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1267, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);

        /* "Cython/Compiler/Parsing.py":1268
 *                 comprehension_type = Builtin.dict_type
 *                 append = ExprNodes.DictComprehensionAppendNode(
 *                     item.pos, key_expr=item.key, value_expr=item.value)             # <<<<<<<<<<<<<<
 *             else:
 *                 comprehension_type = Builtin.set_type
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);

        /* "Cython/Compiler/Parsing.py":1267
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 *                 comprehension_type = Builtin.dict_type
 *                 append = ExprNodes.DictComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *                     item.pos, key_expr=item.key, value_expr=item.value)
 *             else:
 */
        __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1267, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1268
 *                 comprehension_type = Builtin.dict_type
 *                 append = ExprNodes.DictComprehensionAppendNode(
 *                     item.pos, key_expr=item.key, value_expr=item.value)             # <<<<<<<<<<<<<<
 *             else:
 *                 comprehension_type = Builtin.set_type
 */
        __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_key_expr, __pyx_t_4) < 0) __PYX_ERR(0, 1268, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value_expr, __pyx_t_4) < 0) __PYX_ERR(0, 1268, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":1267
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 *                 comprehension_type = Builtin.dict_type
 *                 append = ExprNodes.DictComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *                     item.pos, key_expr=item.key, value_expr=item.value)
 *             else:
 */
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1267, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_v_append = __pyx_t_4;
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":1264
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:
 *             item = parts[0][0]
 *             if target_type == 2:             # <<<<<<<<<<<<<<
 *                 assert isinstance(item, ExprNodes.DictItemNode), type(item)
 *                 comprehension_type = Builtin.dict_type
 */
        goto __pyx_L21;
      }

      /* "Cython/Compiler/Parsing.py":1270
 *                     item.pos, key_expr=item.key, value_expr=item.value)
 *             else:
 *                 comprehension_type = Builtin.set_type             # <<<<<<<<<<<<<<
 *                 append = ExprNodes.ComprehensionAppendNode(item.pos, expr=item)
 *             loop = p_comp_for(s, append)
 */
      /*else*/ {
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_set_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1270, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_v_comprehension_type = __pyx_t_4;
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":1271
 *             else:
 *                 comprehension_type = Builtin.set_type
 *                 append = ExprNodes.ComprehensionAppendNode(item.pos, expr=item)             # <<<<<<<<<<<<<<
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ComprehensionAppendNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_expr, __pyx_v_item) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_v_append = __pyx_t_5;
        __pyx_t_5 = 0;
      }
      __pyx_L21:;

      /* "Cython/Compiler/Parsing.py":1272
 *                 comprehension_type = Builtin.set_type
 *                 append = ExprNodes.ComprehensionAppendNode(item.pos, expr=item)
 *             loop = p_comp_for(s, append)             # <<<<<<<<<<<<<<
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(pos, loop=loop, append=append, type=comprehension_type)
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(__pyx_v_s, __pyx_v_append); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_loop = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1273
 *                 append = ExprNodes.ComprehensionAppendNode(item.pos, expr=item)
 *             loop = p_comp_for(s, append)
 *             s.expect('}')             # <<<<<<<<<<<<<<
 *             return ExprNodes.ComprehensionNode(pos, loop=loop, append=append, type=comprehension_type)
 *         else:
 */
      __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__67, NULL); if (unlikely(__pyx_t_6 == -2)) __PYX_ERR(0, 1273, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1274
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(pos, loop=loop, append=append, type=comprehension_type)             # <<<<<<<<<<<<<<
 *         else:
 *             # syntax error, try to find a good error message
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ComprehensionNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 1274, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_append, __pyx_v_append) < 0) __PYX_ERR(0, 1274, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_type, __pyx_v_comprehension_type) < 0) __PYX_ERR(0, 1274, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":1262
 *     if s.sy == 'for':
 *         # dict/set comprehension
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:             # <<<<<<<<<<<<<<
 *             item = parts[0][0]
 *             if target_type == 2:
 */
    }

    /* "Cython/Compiler/Parsing.py":1277
 *         else:
 *             # syntax error, try to find a good error message
 *             if len(parts) == 1 and not isinstance(parts[0], list):             # <<<<<<<<<<<<<<
 *                 s.error("iterable unpacking cannot be used in comprehension")
 *             else:
 */
    /*else*/ {
      __pyx_t_8 = PyList_GET_SIZE(__pyx_v_parts); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1277, __pyx_L1_error)
      __pyx_t_11 = ((__pyx_t_8 == 1) != 0);
      if (__pyx_t_11) {
      } else {
        __pyx_t_6 = __pyx_t_11;
        goto __pyx_L23_bool_binop_done;
      }
      __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_parts, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1277, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = PyList_Check(__pyx_t_4); 
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_2 = ((!(__pyx_t_11 != 0)) != 0);
      __pyx_t_6 = __pyx_t_2;
      __pyx_L23_bool_binop_done:;
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1278
 *             # syntax error, try to find a good error message
 *             if len(parts) == 1 and not isinstance(parts[0], list):
 *                 s.error("iterable unpacking cannot be used in comprehension")             # <<<<<<<<<<<<<<
 *             else:
 *                 # e.g. "{1,2,3 for ..."
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__81, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "Cython/Compiler/Parsing.py":1277
 *         else:
 *             # syntax error, try to find a good error message
 *             if len(parts) == 1 and not isinstance(parts[0], list):             # <<<<<<<<<<<<<<
 *                 s.error("iterable unpacking cannot be used in comprehension")
 *             else:
 */
        goto __pyx_L22;
      }

      /* "Cython/Compiler/Parsing.py":1281
 *             else:
 *                 # e.g. "{1,2,3 for ..."
 *                 s.expect('}')             # <<<<<<<<<<<<<<
 *             return ExprNodes.DictNode(pos, key_value_pairs=[])
 * 
 */
      /*else*/ {
        __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__67, NULL); if (unlikely(__pyx_t_6 == -2)) __PYX_ERR(0, 1281, __pyx_L1_error)
      }
      __pyx_L22:;

      /* "Cython/Compiler/Parsing.py":1282
 *                 # e.g. "{1,2,3 for ..."
 *                 s.expect('}')
 *             return ExprNodes.DictNode(pos, key_value_pairs=[])             # <<<<<<<<<<<<<<
 * 
 *     s.expect('}')
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_key_value_pairs, __pyx_t_5) < 0) __PYX_ERR(0, 1282, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1260
 *             break
 * 
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         # dict/set comprehension
 *         if len(parts) == 1 and isinstance(parts[0], list) and len(parts[0]) == 1:
 */
  }

  /* "Cython/Compiler/Parsing.py":1284
 *             return ExprNodes.DictNode(pos, key_value_pairs=[])
 * 
 *     s.expect('}')             # <<<<<<<<<<<<<<
 *     if target_type == 1:
 *         # (merged) set literal
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__67, NULL); if (unlikely(__pyx_t_6 == -2)) __PYX_ERR(0, 1284, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1285
 * 
 *     s.expect('}')
 *     if target_type == 1:             # <<<<<<<<<<<<<<
 *         # (merged) set literal
 *         items = []
 */
  __pyx_t_6 = ((__pyx_v_target_type == 1) != 0);
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1287
 *     if target_type == 1:
 *         # (merged) set literal
 *         items = []             # <<<<<<<<<<<<<<
 *         set_items = []
 *         for part in parts:
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_items = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1288
 *         # (merged) set literal
 *         items = []
 *         set_items = []             # <<<<<<<<<<<<<<
 *         for part in parts:
 *             if isinstance(part, list):
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_set_items = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1289
 *         items = []
 *         set_items = []
 *         for part in parts:             # <<<<<<<<<<<<<<
 *             if isinstance(part, list):
 *                 set_items.extend(part)
 */
    __pyx_t_5 = __pyx_v_parts; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1289, __pyx_L1_error)
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1289, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_part, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":1290
 *         set_items = []
 *         for part in parts:
 *             if isinstance(part, list):             # <<<<<<<<<<<<<<
 *                 set_items.extend(part)
 *             else:
 */
      __pyx_t_6 = PyList_Check(__pyx_v_part); 
      __pyx_t_2 = (__pyx_t_6 != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1291
 *         for part in parts:
 *             if isinstance(part, list):
 *                 set_items.extend(part)             # <<<<<<<<<<<<<<
 *             else:
 *                 if set_items:
 */
        __pyx_t_10 = __Pyx_PyList_Extend(__pyx_v_set_items, __pyx_v_part); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1291, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":1290
 *         set_items = []
 *         for part in parts:
 *             if isinstance(part, list):             # <<<<<<<<<<<<<<
 *                 set_items.extend(part)
 *             else:
 */
        goto __pyx_L28;
      }

      /* "Cython/Compiler/Parsing.py":1293
 *                 set_items.extend(part)
 *             else:
 *                 if set_items:             # <<<<<<<<<<<<<<
 *                     items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *                     set_items = []
 */
      /*else*/ {
        __pyx_t_2 = (__pyx_v_set_items != Py_None) && (PyList_GET_SIZE(__pyx_v_set_items) != 0);
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":1294
 *             else:
 *                 if set_items:
 *                     items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))             # <<<<<<<<<<<<<<
 *                     set_items = []
 *                 items.append(part)
 */
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SetNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_set_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_pos); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9);
          __pyx_t_9 = 0;
          __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_args, __pyx_v_set_items) < 0) __PYX_ERR(0, 1294, __pyx_L1_error)
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1294, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":1295
 *                 if set_items:
 *                     items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *                     set_items = []             # <<<<<<<<<<<<<<
 *                 items.append(part)
 *         if set_items:
 */
          __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_set_items, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":1293
 *                 set_items.extend(part)
 *             else:
 *                 if set_items:             # <<<<<<<<<<<<<<
 *                     items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *                     set_items = []
 */
        }

        /* "Cython/Compiler/Parsing.py":1296
 *                     items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *                     set_items = []
 *                 items.append(part)             # <<<<<<<<<<<<<<
 *         if set_items:
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 */
        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_items, __pyx_v_part); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1296, __pyx_L1_error)
      }
      __pyx_L28:;

      /* "Cython/Compiler/Parsing.py":1289
 *         items = []
 *         set_items = []
 *         for part in parts:             # <<<<<<<<<<<<<<
 *             if isinstance(part, list):
 *                 set_items.extend(part)
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1297
 *                     set_items = []
 *                 items.append(part)
 *         if set_items:             # <<<<<<<<<<<<<<
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *         if len(items) == 1 and items[0].is_set_literal:
 */
    __pyx_t_2 = (__pyx_v_set_items != Py_None) && (PyList_GET_SIZE(__pyx_v_set_items) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1298
 *                 items.append(part)
 *         if set_items:
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))             # <<<<<<<<<<<<<<
 *         if len(items) == 1 and items[0].is_set_literal:
 *             return items[0]
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SetNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_set_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_pos); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9);
      __pyx_t_9 = 0;
      __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_args, __pyx_v_set_items) < 0) __PYX_ERR(0, 1298, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_4); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1298, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1297
 *                     set_items = []
 *                 items.append(part)
 *         if set_items:             # <<<<<<<<<<<<<<
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *         if len(items) == 1 and items[0].is_set_literal:
 */
    }

    /* "Cython/Compiler/Parsing.py":1299
 *         if set_items:
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *         if len(items) == 1 and items[0].is_set_literal:             # <<<<<<<<<<<<<<
 *             return items[0]
 *         return ExprNodes.MergedSequenceNode(pos, args=items, type=Builtin.set_type)
 */
    __pyx_t_8 = PyList_GET_SIZE(__pyx_v_items); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1299, __pyx_L1_error)
    __pyx_t_6 = ((__pyx_t_8 == 1) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_2 = __pyx_t_6;
      goto __pyx_L32_bool_binop_done;
    }
    __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_is_set_literal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1299, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_2 = __pyx_t_6;
    __pyx_L32_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1300
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *         if len(items) == 1 and items[0].is_set_literal:
 *             return items[0]             # <<<<<<<<<<<<<<
 *         return ExprNodes.MergedSequenceNode(pos, args=items, type=Builtin.set_type)
 *     else:
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":1299
 *         if set_items:
 *             items.append(ExprNodes.SetNode(set_items[0].pos, args=set_items))
 *         if len(items) == 1 and items[0].is_set_literal:             # <<<<<<<<<<<<<<
 *             return items[0]
 *         return ExprNodes.MergedSequenceNode(pos, args=items, type=Builtin.set_type)
 */
    }

    /* "Cython/Compiler/Parsing.py":1301
 *         if len(items) == 1 and items[0].is_set_literal:
 *             return items[0]
 *         return ExprNodes.MergedSequenceNode(pos, args=items, type=Builtin.set_type)             # <<<<<<<<<<<<<<
 *     else:
 *         # (merged) dict literal
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_MergedSequenceNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_args, __pyx_v_items) < 0) __PYX_ERR(0, 1301, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_set_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_5) < 0) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1285
 * 
 *     s.expect('}')
 *     if target_type == 1:             # <<<<<<<<<<<<<<
 *         # (merged) set literal
 *         items = []
 */
  }

  /* "Cython/Compiler/Parsing.py":1304
 *     else:
 *         # (merged) dict literal
 *         items = []             # <<<<<<<<<<<<<<
 *         dict_items = []
 *         for part in parts:
 */
  /*else*/ {
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_items = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1305
 *         # (merged) dict literal
 *         items = []
 *         dict_items = []             # <<<<<<<<<<<<<<
 *         for part in parts:
 *             if isinstance(part, list):
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_dict_items = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1306
 *         items = []
 *         dict_items = []
 *         for part in parts:             # <<<<<<<<<<<<<<
 *             if isinstance(part, list):
 *                 dict_items.extend(part)
 */
    __pyx_t_5 = __pyx_v_parts; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1306, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1306, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_part, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1307
 *         dict_items = []
 *         for part in parts:
 *             if isinstance(part, list):             # <<<<<<<<<<<<<<
 *                 dict_items.extend(part)
 *             else:
 */
      __pyx_t_2 = PyList_Check(__pyx_v_part); 
      __pyx_t_6 = (__pyx_t_2 != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":1308
 *         for part in parts:
 *             if isinstance(part, list):
 *                 dict_items.extend(part)             # <<<<<<<<<<<<<<
 *             else:
 *                 if dict_items:
 */
        __pyx_t_10 = __Pyx_PyList_Extend(__pyx_v_dict_items, __pyx_v_part); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1308, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":1307
 *         dict_items = []
 *         for part in parts:
 *             if isinstance(part, list):             # <<<<<<<<<<<<<<
 *                 dict_items.extend(part)
 *             else:
 */
        goto __pyx_L36;
      }

      /* "Cython/Compiler/Parsing.py":1310
 *                 dict_items.extend(part)
 *             else:
 *                 if dict_items:             # <<<<<<<<<<<<<<
 *                     items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *                     dict_items = []
 */
      /*else*/ {
        __pyx_t_6 = (__pyx_v_dict_items != Py_None) && (PyList_GET_SIZE(__pyx_v_dict_items) != 0);
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":1311
 *             else:
 *                 if dict_items:
 *                     items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))             # <<<<<<<<<<<<<<
 *                     dict_items = []
 *                 items.append(part)
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dict_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_pos); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9);
          __pyx_t_9 = 0;
          __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_key_value_pairs, __pyx_v_dict_items) < 0) __PYX_ERR(0, 1311, __pyx_L1_error)
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_3); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1311, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

          /* "Cython/Compiler/Parsing.py":1312
 *                 if dict_items:
 *                     items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *                     dict_items = []             # <<<<<<<<<<<<<<
 *                 items.append(part)
 *         if dict_items:
 */
          __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1312, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF_SET(__pyx_v_dict_items, ((PyObject*)__pyx_t_3));
          __pyx_t_3 = 0;

          /* "Cython/Compiler/Parsing.py":1310
 *                 dict_items.extend(part)
 *             else:
 *                 if dict_items:             # <<<<<<<<<<<<<<
 *                     items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *                     dict_items = []
 */
        }

        /* "Cython/Compiler/Parsing.py":1313
 *                     items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *                     dict_items = []
 *                 items.append(part)             # <<<<<<<<<<<<<<
 *         if dict_items:
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 */
        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_items, __pyx_v_part); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1313, __pyx_L1_error)
      }
      __pyx_L36:;

      /* "Cython/Compiler/Parsing.py":1306
 *         items = []
 *         dict_items = []
 *         for part in parts:             # <<<<<<<<<<<<<<
 *             if isinstance(part, list):
 *                 dict_items.extend(part)
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1314
 *                     dict_items = []
 *                 items.append(part)
 *         if dict_items:             # <<<<<<<<<<<<<<
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *         if len(items) == 1 and items[0].is_dict_literal:
 */
    __pyx_t_6 = (__pyx_v_dict_items != Py_None) && (PyList_GET_SIZE(__pyx_v_dict_items) != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1315
 *                 items.append(part)
 *         if dict_items:
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))             # <<<<<<<<<<<<<<
 *         if len(items) == 1 and items[0].is_dict_literal:
 *             return items[0]
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_dict_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pos); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9);
      __pyx_t_9 = 0;
      __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_key_value_pairs, __pyx_v_dict_items) < 0) __PYX_ERR(0, 1315, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_4); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1314
 *                     dict_items = []
 *                 items.append(part)
 *         if dict_items:             # <<<<<<<<<<<<<<
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *         if len(items) == 1 and items[0].is_dict_literal:
 */
    }

    /* "Cython/Compiler/Parsing.py":1316
 *         if dict_items:
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *         if len(items) == 1 and items[0].is_dict_literal:             # <<<<<<<<<<<<<<
 *             return items[0]
 *         return ExprNodes.MergedDictNode(pos, keyword_args=items, reject_duplicates=False)
 */
    __pyx_t_8 = PyList_GET_SIZE(__pyx_v_items); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_8 == 1) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_6 = __pyx_t_2;
      goto __pyx_L40_bool_binop_done;
    }
    __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_is_dict_literal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_6 = __pyx_t_2;
    __pyx_L40_bool_binop_done:;
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1317
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *         if len(items) == 1 and items[0].is_dict_literal:
 *             return items[0]             # <<<<<<<<<<<<<<
 *         return ExprNodes.MergedDictNode(pos, keyword_args=items, reject_duplicates=False)
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1317, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":1316
 *         if dict_items:
 *             items.append(ExprNodes.DictNode(dict_items[0].pos, key_value_pairs=dict_items))
 *         if len(items) == 1 and items[0].is_dict_literal:             # <<<<<<<<<<<<<<
 *             return items[0]
 *         return ExprNodes.MergedDictNode(pos, keyword_args=items, reject_duplicates=False)
 */
    }

    /* "Cython/Compiler/Parsing.py":1318
 *         if len(items) == 1 and items[0].is_dict_literal:
 *             return items[0]
 *         return ExprNodes.MergedDictNode(pos, keyword_args=items, reject_duplicates=False)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_MergedDictNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_keyword_args, __pyx_v_items) < 0) __PYX_ERR(0, 1318, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_reject_duplicates, Py_False) < 0) __PYX_ERR(0, 1318, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1212
 * #                   (comp_for | (',' (test | star_expr))* [','])) )
 * 
 * def p_dict_or_set_maker(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '{'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_dict_or_set_maker", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_parts);
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_comprehension_type);
  __Pyx_XDECREF(__pyx_v_append);
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XDECREF(__pyx_v_set_items);
  __Pyx_XDECREF(__pyx_v_part);
  __Pyx_XDECREF(__pyx_v_dict_items);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1322
 * 
 * # NOTE: no longer in Py3 :)
 * def p_backquote_expr(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '`'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_backquote_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_backquote_expr", 0);

  /* "Cython/Compiler/Parsing.py":1324
 * def p_backquote_expr(s):
 *     # s.sy == '`'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     args = [p_test(s)]
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1325
 *     # s.sy == '`'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     args = [p_test(s)]
 *     while s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1326
 *     pos = s.position()
 *     s.next()
 *     args = [p_test(s)]             # <<<<<<<<<<<<<<
 *     while s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_args = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1327
 *     s.next()
 *     args = [p_test(s)]
 *     while s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         args.append(p_test(s))
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1327, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1328
 *     args = [p_test(s)]
 *     while s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         args.append(p_test(s))
 *     s.expect('`')
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1329
 *     while s.sy == ',':
 *         s.next()
 *         args.append(p_test(s))             # <<<<<<<<<<<<<<
 *     s.expect('`')
 *     if len(args) == 1:
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1329, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1330
 *         s.next()
 *         args.append(p_test(s))
 *     s.expect('`')             # <<<<<<<<<<<<<<
 *     if len(args) == 1:
 *         arg = args[0]
 */
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__48, NULL); if (unlikely(__pyx_t_3 == -2)) __PYX_ERR(0, 1330, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1331
 *         args.append(p_test(s))
 *     s.expect('`')
 *     if len(args) == 1:             # <<<<<<<<<<<<<<
 *         arg = args[0]
 *     else:
 */
  __pyx_t_5 = PyList_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 1331, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_5 == 1) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1332
 *     s.expect('`')
 *     if len(args) == 1:
 *         arg = args[0]             # <<<<<<<<<<<<<<
 *     else:
 *         arg = ExprNodes.TupleNode(pos, args = args)
 */
    __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_arg = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1331
 *         args.append(p_test(s))
 *     s.expect('`')
 *     if len(args) == 1:             # <<<<<<<<<<<<<<
 *         arg = args[0]
 *     else:
 */
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":1334
 *         arg = args[0]
 *     else:
 *         arg = ExprNodes.TupleNode(pos, args = args)             # <<<<<<<<<<<<<<
 *     return ExprNodes.BackquoteNode(pos, arg = arg)
 * 
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 1334, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_arg = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":1335
 *     else:
 *         arg = ExprNodes.TupleNode(pos, args = args)
 *     return ExprNodes.BackquoteNode(pos, arg = arg)             # <<<<<<<<<<<<<<
 * 
 * def p_simple_expr_list(s, expr=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BackquoteNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_arg, __pyx_v_arg) < 0) __PYX_ERR(0, 1335, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1322
 * 
 * # NOTE: no longer in Py3 :)
 * def p_backquote_expr(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '`'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_backquote_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1337
 *     return ExprNodes.BackquoteNode(pos, arg = arg)
 * 
 * def p_simple_expr_list(s, expr=None):             # <<<<<<<<<<<<<<
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_simple_expr_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_expr_list *__pyx_optional_args) {
  PyObject *__pyx_v_expr = ((PyObject *)Py_None);
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("p_simple_expr_list", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_expr = __pyx_optional_args->expr;
    }
  }

  /* "Cython/Compiler/Parsing.py":1338
 * 
 * def p_simple_expr_list(s, expr=None):
 *     exprs = expr is not None and [expr] or []             # <<<<<<<<<<<<<<
 *     while s.sy not in expr_terminators:
 *         exprs.append( p_test(s) )
 */
  __pyx_t_2 = (__pyx_v_expr != Py_None);
  if (!__pyx_t_2) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_expr);
  __Pyx_GIVEREF(__pyx_v_expr);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_expr);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1338, __pyx_L1_error)
  if (!__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_v_exprs = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1339
 * def p_simple_expr_list(s, expr=None):
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:             # <<<<<<<<<<<<<<
 *         exprs.append( p_test(s) )
 *         if s.sy != ',':
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_expr_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1339, __pyx_L1_error)
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":1340
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:
 *         exprs.append( p_test(s) )             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_exprs, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 1340, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1341
 *     while s.sy not in expr_terminators:
 *         exprs.append( p_test(s) )
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1342
 *         exprs.append( p_test(s) )
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     return exprs
 */
      goto __pyx_L7_break;

      /* "Cython/Compiler/Parsing.py":1341
 *     while s.sy not in expr_terminators:
 *         exprs.append( p_test(s) )
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":1343
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return exprs
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L7_break:;

  /* "Cython/Compiler/Parsing.py":1344
 *             break
 *         s.next()
 *     return exprs             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_exprs);
  __pyx_r = __pyx_v_exprs;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1337
 *     return ExprNodes.BackquoteNode(pos, arg = arg)
 * 
 * def p_simple_expr_list(s, expr=None):             # <<<<<<<<<<<<<<
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_simple_expr_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1347
 * 
 * 
 * def p_test_or_starred_expr_list(s, expr=None):             # <<<<<<<<<<<<<<
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list *__pyx_optional_args) {
  PyObject *__pyx_v_expr = ((PyObject *)Py_None);
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("p_test_or_starred_expr_list", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_expr = __pyx_optional_args->expr;
    }
  }

  /* "Cython/Compiler/Parsing.py":1348
 * 
 * def p_test_or_starred_expr_list(s, expr=None):
 *     exprs = expr is not None and [expr] or []             # <<<<<<<<<<<<<<
 *     while s.sy not in expr_terminators:
 *         exprs.append(p_test_or_starred_expr(s))
 */
  __pyx_t_2 = (__pyx_v_expr != Py_None);
  if (!__pyx_t_2) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_expr);
  __Pyx_GIVEREF(__pyx_v_expr);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_expr);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1348, __pyx_L1_error)
  if (!__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_v_exprs = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1349
 * def p_test_or_starred_expr_list(s, expr=None):
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:             # <<<<<<<<<<<<<<
 *         exprs.append(p_test_or_starred_expr(s))
 *         if s.sy != ',':
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_expr_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1349, __pyx_L1_error)
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":1350
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:
 *         exprs.append(p_test_or_starred_expr(s))             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1350, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_exprs, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 1350, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1351
 *     while s.sy not in expr_terminators:
 *         exprs.append(p_test_or_starred_expr(s))
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1351, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1352
 *         exprs.append(p_test_or_starred_expr(s))
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     return exprs
 */
      goto __pyx_L7_break;

      /* "Cython/Compiler/Parsing.py":1351
 *     while s.sy not in expr_terminators:
 *         exprs.append(p_test_or_starred_expr(s))
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":1353
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return exprs
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L7_break:;

  /* "Cython/Compiler/Parsing.py":1354
 *             break
 *         s.next()
 *     return exprs             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_exprs);
  __pyx_r = __pyx_v_exprs;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1347
 * 
 * 
 * def p_test_or_starred_expr_list(s, expr=None):             # <<<<<<<<<<<<<<
 *     exprs = expr is not None and [expr] or []
 *     while s.sy not in expr_terminators:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_test_or_starred_expr_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1359
 * #testlist: test (',' test)* [',']
 * 
 * def p_testlist(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_test(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_testlist(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_expr_list __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_testlist", 0);

  /* "Cython/Compiler/Parsing.py":1360
 * 
 * def p_testlist(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     expr = p_test(s)
 *     if s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1361
 * def p_testlist(s):
 *     pos = s.position()
 *     expr = p_test(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1362
 *     pos = s.position()
 *     expr = p_test(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_simple_expr_list(s, expr)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1362, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1363
 *     expr = p_test(s)
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         exprs = p_simple_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1363, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1364
 *     if s.sy == ',':
 *         s.next()
 *         exprs = p_simple_expr_list(s, expr)             # <<<<<<<<<<<<<<
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 */
    __pyx_t_3.__pyx_n = 1;
    __pyx_t_3.expr = __pyx_v_expr;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_expr_list(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1364, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_exprs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1365
 *         s.next()
 *         exprs = p_simple_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)             # <<<<<<<<<<<<<<
 *     else:
 *         return expr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1365, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1365, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1365, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1365, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1362
 *     pos = s.position()
 *     expr = p_test(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_simple_expr_list(s, expr)
 */
  }

  /* "Cython/Compiler/Parsing.py":1367
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * # testlist_star_expr: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1359
 * #testlist: test (',' test)* [',']
 * 
 * def p_testlist(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_test(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_testlist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1371
 * # testlist_star_expr: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 * 
 * def p_testlist_star_expr(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_testlist_star_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_testlist_star_expr", 0);

  /* "Cython/Compiler/Parsing.py":1372
 * 
 * def p_testlist_star_expr(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1373
 * def p_testlist_star_expr(s):
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1374
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1374, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1375
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1376
 *     if s.sy == ',':
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)             # <<<<<<<<<<<<<<
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 */
    __pyx_t_3.__pyx_n = 1;
    __pyx_t_3.expr = __pyx_v_expr;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_exprs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1377
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)             # <<<<<<<<<<<<<<
 *     else:
 *         return expr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) __PYX_ERR(0, 1377, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1374
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 */
  }

  /* "Cython/Compiler/Parsing.py":1379
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * # testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1371
 * # testlist_star_expr: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 * 
 * def p_testlist_star_expr(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_testlist_star_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1383
 * # testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 * 
 * def p_testlist_comp(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_testlist_comp(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_testlist_comp", 0);

  /* "Cython/Compiler/Parsing.py":1384
 * 
 * def p_testlist_comp(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1385
 * def p_testlist_comp(s):
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1386
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1386, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1387
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1388
 *     if s.sy == ',':
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)             # <<<<<<<<<<<<<<
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     elif s.sy == 'for':
 */
    __pyx_t_3.__pyx_n = 1;
    __pyx_t_3.expr = __pyx_v_expr;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_exprs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1389
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'for':
 *         return p_genexp(s, expr)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) __PYX_ERR(0, 1389, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1386
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = p_test_or_starred_expr_list(s, expr)
 */
  }

  /* "Cython/Compiler/Parsing.py":1390
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *         return p_genexp(s, expr)
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1390, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1391
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     elif s.sy == 'for':
 *         return p_genexp(s, expr)             # <<<<<<<<<<<<<<
 *     else:
 *         return expr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_genexp(__pyx_v_s, __pyx_v_expr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1390
 *         exprs = p_test_or_starred_expr_list(s, expr)
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *         return p_genexp(s, expr)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":1393
 *         return p_genexp(s, expr)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * def p_genexp(s, expr):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1383
 * # testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 * 
 * def p_testlist_comp(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_test_or_starred_expr(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_testlist_comp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1395
 *         return expr
 * 
 * def p_genexp(s, expr):             # <<<<<<<<<<<<<<
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_genexp(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_expr) {
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_genexp", 0);

  /* "Cython/Compiler/Parsing.py":1397
 * def p_genexp(s, expr):
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(             # <<<<<<<<<<<<<<
 *         expr.pos, expr = ExprNodes.YieldExprNode(expr.pos, arg=expr)))
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":1398
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(
 *         expr.pos, expr = ExprNodes.YieldExprNode(expr.pos, arg=expr)))             # <<<<<<<<<<<<<<
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "Cython/Compiler/Parsing.py":1397
 * def p_genexp(s, expr):
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(             # <<<<<<<<<<<<<<
 *         expr.pos, expr = ExprNodes.YieldExprNode(expr.pos, arg=expr)))
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1398
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(
 *         expr.pos, expr = ExprNodes.YieldExprNode(expr.pos, arg=expr)))             # <<<<<<<<<<<<<<
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 * 
 */
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_YieldExprNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg, __pyx_v_expr) < 0) __PYX_ERR(0, 1398, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_expr, __pyx_t_7) < 0) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":1397
 * def p_genexp(s, expr):
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(             # <<<<<<<<<<<<<<
 *         expr.pos, expr = ExprNodes.YieldExprNode(expr.pos, arg=expr)))
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 */
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(__pyx_v_s, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_loop = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1399
 *     loop = p_comp_for(s, Nodes.ExprStatNode(
 *         expr.pos, expr = ExprNodes.YieldExprNode(expr.pos, arg=expr)))
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)             # <<<<<<<<<<<<<<
 * 
 * expr_terminators = cython.declare(set, set([
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_GeneratorExpressionNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 1399, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1395
 *         return expr
 * 
 * def p_genexp(s, expr):             # <<<<<<<<<<<<<<
 *     # s.sy == 'for'
 *     loop = p_comp_for(s, Nodes.ExprStatNode(
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_genexp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1411
 * #-------------------------------------------------------
 * 
 * def p_global_statement(s):             # <<<<<<<<<<<<<<
 *     # assume s.sy == 'global'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_global_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_global_statement", 0);

  /* "Cython/Compiler/Parsing.py":1413
 * def p_global_statement(s):
 *     # assume s.sy == 'global'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     names = p_ident_list(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1414
 *     # assume s.sy == 'global'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     names = p_ident_list(s)
 *     return Nodes.GlobalNode(pos, names = names)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1415
 *     pos = s.position()
 *     s.next()
 *     names = p_ident_list(s)             # <<<<<<<<<<<<<<
 *     return Nodes.GlobalNode(pos, names = names)
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident_list(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_names = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1416
 *     s.next()
 *     names = p_ident_list(s)
 *     return Nodes.GlobalNode(pos, names = names)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_GlobalNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_names, __pyx_v_names) < 0) __PYX_ERR(0, 1416, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1411
 * #-------------------------------------------------------
 * 
 * def p_global_statement(s):             # <<<<<<<<<<<<<<
 *     # assume s.sy == 'global'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_global_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1419
 * 
 * 
 * def p_nonlocal_statement(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_nonlocal_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_nonlocal_statement", 0);

  /* "Cython/Compiler/Parsing.py":1420
 * 
 * def p_nonlocal_statement(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     names = p_ident_list(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1421
 * def p_nonlocal_statement(s):
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     names = p_ident_list(s)
 *     return Nodes.NonlocalNode(pos, names = names)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1422
 *     pos = s.position()
 *     s.next()
 *     names = p_ident_list(s)             # <<<<<<<<<<<<<<
 *     return Nodes.NonlocalNode(pos, names = names)
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident_list(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_names = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1423
 *     s.next()
 *     names = p_ident_list(s)
 *     return Nodes.NonlocalNode(pos, names = names)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_NonlocalNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_names, __pyx_v_names) < 0) __PYX_ERR(0, 1423, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1419
 * 
 * 
 * def p_nonlocal_statement(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_nonlocal_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1426
 * 
 * 
 * def p_expression_or_assignment(s):             # <<<<<<<<<<<<<<
 *     expr_list = [p_testlist_star_expr(s)]
 *     if s.sy == '=' and expr_list[0].is_starred:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_expression_or_assignment(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_expr_list = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_lhs = NULL;
  PyObject *__pyx_v_operator = NULL;
  PyObject *__pyx_v_rhs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node __pyx_t_13;
  int __pyx_t_14;
  __Pyx_RefNannySetupContext("p_expression_or_assignment", 0);

  /* "Cython/Compiler/Parsing.py":1427
 * 
 * def p_expression_or_assignment(s):
 *     expr_list = [p_testlist_star_expr(s)]             # <<<<<<<<<<<<<<
 *     if s.sy == '=' and expr_list[0].is_starred:
 *         # This is a common enough error to make when learning Cython to let
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist_star_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_expr_list = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1428
 * def p_expression_or_assignment(s):
 *     expr_list = [p_testlist_star_expr(s)]
 *     if s.sy == '=' and expr_list[0].is_starred:             # <<<<<<<<<<<<<<
 *         # This is a common enough error to make when learning Cython to let
 *         # it fail as early as possible and give a very clear error message.
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1428, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_is_starred); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1428, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1431
 *         # This is a common enough error to make when learning Cython to let
 *         # it fail as early as possible and give a very clear error message.
 *         s.error("a starred assignment target must be in a list or tuple"             # <<<<<<<<<<<<<<
 *                 " - maybe you meant to use an index assignment: var[0] = ...",
 *                 pos=expr_list[0].pos)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1431, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":1433
 *         s.error("a starred assignment target must be in a list or tuple"
 *                 " - maybe you meant to use an index assignment: var[0] = ...",
 *                 pos=expr_list[0].pos)             # <<<<<<<<<<<<<<
 *     while s.sy == '=':
 *         s.next()
 */
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pos, __pyx_t_6) < 0) __PYX_ERR(0, 1433, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1431
 *         # This is a common enough error to make when learning Cython to let
 *         # it fail as early as possible and give a very clear error message.
 *         s.error("a starred assignment target must be in a list or tuple"             # <<<<<<<<<<<<<<
 *                 " - maybe you meant to use an index assignment: var[0] = ...",
 *                 pos=expr_list[0].pos)
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__82, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1431, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1428
 * def p_expression_or_assignment(s):
 *     expr_list = [p_testlist_star_expr(s)]
 *     if s.sy == '=' and expr_list[0].is_starred:             # <<<<<<<<<<<<<<
 *         # This is a common enough error to make when learning Cython to let
 *         # it fail as early as possible and give a very clear error message.
 */
  }

  /* "Cython/Compiler/Parsing.py":1434
 *                 " - maybe you meant to use an index assignment: var[0] = ...",
 *                 pos=expr_list[0].pos)
 *     while s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == 'yield':
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1434, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1435
 *                 pos=expr_list[0].pos)
 *     while s.sy == '=':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == 'yield':
 *             expr = p_yield_expression(s)
 */
    __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1436
 *     while s.sy == '=':
 *         s.next()
 *         if s.sy == 'yield':             # <<<<<<<<<<<<<<
 *             expr = p_yield_expression(s)
 *         else:
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1436, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1437
 *         s.next()
 *         if s.sy == 'yield':
 *             expr = p_yield_expression(s)             # <<<<<<<<<<<<<<
 *         else:
 *             expr = p_testlist_star_expr(s)
 */
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1436
 *     while s.sy == '=':
 *         s.next()
 *         if s.sy == 'yield':             # <<<<<<<<<<<<<<
 *             expr = p_yield_expression(s)
 *         else:
 */
      goto __pyx_L8;
    }

    /* "Cython/Compiler/Parsing.py":1439
 *             expr = p_yield_expression(s)
 *         else:
 *             expr = p_testlist_star_expr(s)             # <<<<<<<<<<<<<<
 *         expr_list.append(expr)
 *     if len(expr_list) == 1:
 */
    /*else*/ {
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist_star_expr(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1439, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_6);
      __pyx_t_6 = 0;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":1440
 *         else:
 *             expr = p_testlist_star_expr(s)
 *         expr_list.append(expr)             # <<<<<<<<<<<<<<
 *     if len(expr_list) == 1:
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):
 */
    __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_expr_list, __pyx_v_expr); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 1440, __pyx_L1_error)
  }

  /* "Cython/Compiler/Parsing.py":1441
 *             expr = p_testlist_star_expr(s)
 *         expr_list.append(expr)
 *     if len(expr_list) == 1:             # <<<<<<<<<<<<<<
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):
 *             lhs = expr_list[0]
 */
  __pyx_t_8 = PyList_GET_SIZE(__pyx_v_expr_list); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1441, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_8 == 1) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1442
 *         expr_list.append(expr)
 *     if len(expr_list) == 1:
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):             # <<<<<<<<<<<<<<
 *             lhs = expr_list[0]
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_re, __pyx_n_s_match); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u__83, __pyx_v_s->sy};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1442, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u__83, __pyx_v_s->sy};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1442, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_kp_u__83);
      __Pyx_GIVEREF(__pyx_kp_u__83);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_kp_u__83);
      __Pyx_INCREF(__pyx_v_s->sy);
      __Pyx_GIVEREF(__pyx_v_s->sy);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_v_s->sy);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1442, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1442, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1443
 *     if len(expr_list) == 1:
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):
 *             lhs = expr_list[0]             # <<<<<<<<<<<<<<
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 */
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1443, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_v_lhs = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1444
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):
 *             lhs = expr_list[0]
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):             # <<<<<<<<<<<<<<
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SliceIndexNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1444, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = PyObject_IsInstance(__pyx_v_lhs, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 1444, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_4 = (__pyx_t_3 != 0);
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":1446
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(             # <<<<<<<<<<<<<<
 *                     lhs.pos,
 *                     base=lhs.base,
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IndexNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1446, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);

        /* "Cython/Compiler/Parsing.py":1447
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(
 *                     lhs.pos,             # <<<<<<<<<<<<<<
 *                     base=lhs.base,
 *                     index=make_slice_node(lhs.pos, lhs.start, lhs.stop))
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);

        /* "Cython/Compiler/Parsing.py":1446
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(             # <<<<<<<<<<<<<<
 *                     lhs.pos,
 *                     base=lhs.base,
 */
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1446, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":1448
 *                 lhs = ExprNodes.IndexNode(
 *                     lhs.pos,
 *                     base=lhs.base,             # <<<<<<<<<<<<<<
 *                     index=make_slice_node(lhs.pos, lhs.start, lhs.stop))
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):
 */
        __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1448, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1448, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base, __pyx_t_1) < 0) __PYX_ERR(0, 1448, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1449
 *                     lhs.pos,
 *                     base=lhs.base,
 *                     index=make_slice_node(lhs.pos, lhs.start, lhs.stop))             # <<<<<<<<<<<<<<
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):
 *                 error(lhs.pos, "Illegal operand for inplace operation.")
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1449, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_start); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1449, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_stop); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1449, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_13.__pyx_n = 1;
        __pyx_t_13.stop = __pyx_t_11;
        __pyx_t_12 = __pyx_f_6Cython_8Compiler_7Parsing_make_slice_node(__pyx_t_1, __pyx_t_10, 0, &__pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1449, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_index, __pyx_t_12) < 0) __PYX_ERR(0, 1448, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

        /* "Cython/Compiler/Parsing.py":1446
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(             # <<<<<<<<<<<<<<
 *                     lhs.pos,
 *                     base=lhs.base,
 */
        __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1446, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_lhs, __pyx_t_12);
        __pyx_t_12 = 0;

        /* "Cython/Compiler/Parsing.py":1444
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):
 *             lhs = expr_list[0]
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):             # <<<<<<<<<<<<<<
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(
 */
        goto __pyx_L11;
      }

      /* "Cython/Compiler/Parsing.py":1450
 *                     base=lhs.base,
 *                     index=make_slice_node(lhs.pos, lhs.start, lhs.stop))
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):             # <<<<<<<<<<<<<<
 *                 error(lhs.pos, "Illegal operand for inplace operation.")
 *             operator = s.sy[:-1]
 */
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AttributeNode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1450, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IndexNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1450, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1450, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyObject_IsInstance(__pyx_v_lhs, __pyx_t_12); 
      __pyx_t_14 = (__pyx_t_3 != 0);
      if (!__pyx_t_14) {
      } else {
        __pyx_t_4 = __pyx_t_14;
        goto __pyx_L12_bool_binop_done;
      }
      __pyx_t_14 = PyObject_IsInstance(__pyx_v_lhs, __pyx_t_2); 
      __pyx_t_3 = (__pyx_t_14 != 0);
      if (!__pyx_t_3) {
      } else {
        __pyx_t_4 = __pyx_t_3;
        goto __pyx_L12_bool_binop_done;
      }
      __pyx_t_3 = PyObject_IsInstance(__pyx_v_lhs, __pyx_t_5); 
      __pyx_t_14 = (__pyx_t_3 != 0);
      __pyx_t_4 = __pyx_t_14;
      __pyx_L12_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_14 = ((!(__pyx_t_4 != 0)) != 0);
      if (__pyx_t_14) {

        /* "Cython/Compiler/Parsing.py":1451
 *                     index=make_slice_node(lhs.pos, lhs.start, lhs.stop))
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):
 *                 error(lhs.pos, "Illegal operand for inplace operation.")             # <<<<<<<<<<<<<<
 *             operator = s.sy[:-1]
 *             s.next()
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1451, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
        __pyx_t_9 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_2, __pyx_kp_u_Illegal_operand_for_inplace_oper};
          __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1451, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_2, __pyx_kp_u_Illegal_operand_for_inplace_oper};
          __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1451, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        } else
        #endif
        {
          __pyx_t_11 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_9, __pyx_t_2);
          __Pyx_INCREF(__pyx_kp_u_Illegal_operand_for_inplace_oper);
          __Pyx_GIVEREF(__pyx_kp_u_Illegal_operand_for_inplace_oper);
          PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_9, __pyx_kp_u_Illegal_operand_for_inplace_oper);
          __pyx_t_2 = 0;
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

        /* "Cython/Compiler/Parsing.py":1450
 *                     base=lhs.base,
 *                     index=make_slice_node(lhs.pos, lhs.start, lhs.stop))
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):             # <<<<<<<<<<<<<<
 *                 error(lhs.pos, "Illegal operand for inplace operation.")
 *             operator = s.sy[:-1]
 */
      }
      __pyx_L11:;

      /* "Cython/Compiler/Parsing.py":1452
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):
 *                 error(lhs.pos, "Illegal operand for inplace operation.")
 *             operator = s.sy[:-1]             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == 'yield':
 */
      __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_s->sy, 0, -1L, NULL, NULL, &__pyx_slice__84, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1452, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_v_operator = __pyx_t_12;
      __pyx_t_12 = 0;

      /* "Cython/Compiler/Parsing.py":1453
 *                 error(lhs.pos, "Illegal operand for inplace operation.")
 *             operator = s.sy[:-1]
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == 'yield':
 *                 rhs = p_yield_expression(s)
 */
      __pyx_t_12 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1453, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

      /* "Cython/Compiler/Parsing.py":1454
 *             operator = s.sy[:-1]
 *             s.next()
 *             if s.sy == 'yield':             # <<<<<<<<<<<<<<
 *                 rhs = p_yield_expression(s)
 *             else:
 */
      __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1454, __pyx_L1_error)
      if (__pyx_t_14) {

        /* "Cython/Compiler/Parsing.py":1455
 *             s.next()
 *             if s.sy == 'yield':
 *                 rhs = p_yield_expression(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 rhs = p_testlist(s)
 */
        __pyx_t_12 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(__pyx_v_s); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1455, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_v_rhs = __pyx_t_12;
        __pyx_t_12 = 0;

        /* "Cython/Compiler/Parsing.py":1454
 *             operator = s.sy[:-1]
 *             s.next()
 *             if s.sy == 'yield':             # <<<<<<<<<<<<<<
 *                 rhs = p_yield_expression(s)
 *             else:
 */
        goto __pyx_L15;
      }

      /* "Cython/Compiler/Parsing.py":1457
 *                 rhs = p_yield_expression(s)
 *             else:
 *                 rhs = p_testlist(s)             # <<<<<<<<<<<<<<
 *             return Nodes.InPlaceAssignmentNode(lhs.pos, operator=operator, lhs=lhs, rhs=rhs)
 *         expr = expr_list[0]
 */
      /*else*/ {
        __pyx_t_12 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1457, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_v_rhs = __pyx_t_12;
        __pyx_t_12 = 0;
      }
      __pyx_L15:;

      /* "Cython/Compiler/Parsing.py":1458
 *             else:
 *                 rhs = p_testlist(s)
 *             return Nodes.InPlaceAssignmentNode(lhs.pos, operator=operator, lhs=lhs, rhs=rhs)             # <<<<<<<<<<<<<<
 *         expr = expr_list[0]
 *         return Nodes.ExprStatNode(expr.pos, expr=expr)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_InPlaceAssignmentNode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1458, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1458, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operator, __pyx_v_operator) < 0) __PYX_ERR(0, 1458, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_lhs, __pyx_v_lhs) < 0) __PYX_ERR(0, 1458, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_rhs, __pyx_v_rhs) < 0) __PYX_ERR(0, 1458, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1458, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":1442
 *         expr_list.append(expr)
 *     if len(expr_list) == 1:
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):             # <<<<<<<<<<<<<<
 *             lhs = expr_list[0]
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 */
    }

    /* "Cython/Compiler/Parsing.py":1459
 *                 rhs = p_testlist(s)
 *             return Nodes.InPlaceAssignmentNode(lhs.pos, operator=operator, lhs=lhs, rhs=rhs)
 *         expr = expr_list[0]             # <<<<<<<<<<<<<<
 *         return Nodes.ExprStatNode(expr.pos, expr=expr)
 * 
 */
    __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1460
 *             return Nodes.InPlaceAssignmentNode(lhs.pos, operator=operator, lhs=lhs, rhs=rhs)
 *         expr = expr_list[0]
 *         return Nodes.ExprStatNode(expr.pos, expr=expr)             # <<<<<<<<<<<<<<
 * 
 *     rhs = expr_list[-1]
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_expr, __pyx_v_expr) < 0) __PYX_ERR(0, 1460, __pyx_L1_error)
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_12;
    __pyx_t_12 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1441
 *             expr = p_testlist_star_expr(s)
 *         expr_list.append(expr)
 *     if len(expr_list) == 1:             # <<<<<<<<<<<<<<
 *         if re.match(r"([-+*[inserted by cython to avoid comment closer]/%^&|]|<<|>>|\*\*|//|@)=", s.sy):
 *             lhs = expr_list[0]
 */
  }

  /* "Cython/Compiler/Parsing.py":1462
 *         return Nodes.ExprStatNode(expr.pos, expr=expr)
 * 
 *     rhs = expr_list[-1]             # <<<<<<<<<<<<<<
 *     if len(expr_list) == 2:
 *         return Nodes.SingleAssignmentNode(rhs.pos, lhs=expr_list[0], rhs=rhs)
 */
  __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_expr_list, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_v_rhs = __pyx_t_12;
  __pyx_t_12 = 0;

  /* "Cython/Compiler/Parsing.py":1463
 * 
 *     rhs = expr_list[-1]
 *     if len(expr_list) == 2:             # <<<<<<<<<<<<<<
 *         return Nodes.SingleAssignmentNode(rhs.pos, lhs=expr_list[0], rhs=rhs)
 *     else:
 */
  __pyx_t_8 = PyList_GET_SIZE(__pyx_v_expr_list); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1463, __pyx_L1_error)
  __pyx_t_14 = ((__pyx_t_8 == 2) != 0);
  if (__pyx_t_14) {

    /* "Cython/Compiler/Parsing.py":1464
 *     rhs = expr_list[-1]
 *     if len(expr_list) == 2:
 *         return Nodes.SingleAssignmentNode(rhs.pos, lhs=expr_list[0], rhs=rhs)             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.CascadedAssignmentNode(rhs.pos, lhs_list=expr_list[:-1], rhs=rhs)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_SingleAssignmentNode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_rhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_lhs, __pyx_t_2) < 0) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_rhs, __pyx_v_rhs) < 0) __PYX_ERR(0, 1464, __pyx_L1_error)
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1463
 * 
 *     rhs = expr_list[-1]
 *     if len(expr_list) == 2:             # <<<<<<<<<<<<<<
 *         return Nodes.SingleAssignmentNode(rhs.pos, lhs=expr_list[0], rhs=rhs)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":1466
 *         return Nodes.SingleAssignmentNode(rhs.pos, lhs=expr_list[0], rhs=rhs)
 *     else:
 *         return Nodes.CascadedAssignmentNode(rhs.pos, lhs_list=expr_list[:-1], rhs=rhs)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CascadedAssignmentNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_rhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = __Pyx_PyList_GetSlice(__pyx_v_expr_list, 0, -1L); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_lhs_list, __pyx_t_12) < 0) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_rhs, __pyx_v_rhs) < 0) __PYX_ERR(0, 1466, __pyx_L1_error)
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_12;
    __pyx_t_12 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1426
 * 
 * 
 * def p_expression_or_assignment(s):             # <<<<<<<<<<<<<<
 *     expr_list = [p_testlist_star_expr(s)]
 *     if s.sy == '=' and expr_list[0].is_starred:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_expression_or_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expr_list);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_lhs);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_rhs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1469
 * 
 * 
 * def p_print_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'print'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_print_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_ends_with_comma = NULL;
  PyObject *__pyx_v_stream = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_arg_tuple = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_print_statement", 0);

  /* "Cython/Compiler/Parsing.py":1471
 * def p_print_statement(s):
 *     # s.sy == 'print'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     ends_with_comma = 0
 *     s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1472
 *     # s.sy == 'print'
 *     pos = s.position()
 *     ends_with_comma = 0             # <<<<<<<<<<<<<<
 *     s.next()
 *     if s.sy == '>>':
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_ends_with_comma = __pyx_int_0;

  /* "Cython/Compiler/Parsing.py":1473
 *     pos = s.position()
 *     ends_with_comma = 0
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy == '>>':
 *         s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1474
 *     ends_with_comma = 0
 *     s.next()
 *     if s.sy == '>>':             # <<<<<<<<<<<<<<
 *         s.next()
 *         stream = p_test(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__16, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1474, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1475
 *     s.next()
 *     if s.sy == '>>':
 *         s.next()             # <<<<<<<<<<<<<<
 *         stream = p_test(s)
 *         if s.sy == ',':
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1476
 *     if s.sy == '>>':
 *         s.next()
 *         stream = p_test(s)             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_stream = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1477
 *         s.next()
 *         stream = p_test(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             ends_with_comma = s.sy in ('NEWLINE', 'EOF')
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1477, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1478
 *         stream = p_test(s)
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             ends_with_comma = s.sy in ('NEWLINE', 'EOF')
 *     else:
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1478, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1479
 *         if s.sy == ',':
 *             s.next()
 *             ends_with_comma = s.sy in ('NEWLINE', 'EOF')             # <<<<<<<<<<<<<<
 *     else:
 *         stream = None
 */
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_1 = __pyx_v_s->sy;
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1479, __pyx_L1_error)
      if (!__pyx_t_3) {
      } else {
        __pyx_t_2 = __pyx_t_3;
        goto __pyx_L5_bool_binop_done;
      }
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1479, __pyx_L1_error)
      __pyx_t_2 = __pyx_t_3;
      __pyx_L5_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_ends_with_comma, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1477
 *         s.next()
 *         stream = p_test(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             ends_with_comma = s.sy in ('NEWLINE', 'EOF')
 */
    }

    /* "Cython/Compiler/Parsing.py":1474
 *     ends_with_comma = 0
 *     s.next()
 *     if s.sy == '>>':             # <<<<<<<<<<<<<<
 *         s.next()
 *         stream = p_test(s)
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1481
 *             ends_with_comma = s.sy in ('NEWLINE', 'EOF')
 *     else:
 *         stream = None             # <<<<<<<<<<<<<<
 *     args = []
 *     if s.sy not in ('NEWLINE', 'EOF'):
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_stream = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1482
 *     else:
 *         stream = None
 *     args = []             # <<<<<<<<<<<<<<
 *     if s.sy not in ('NEWLINE', 'EOF'):
 *         args.append(p_test(s))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1483
 *         stream = None
 *     args = []
 *     if s.sy not in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *         args.append(p_test(s))
 *         while s.sy == ',':
 */
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_1 = __pyx_v_s->sy;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1483, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1483, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L8_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1484
 *     args = []
 *     if s.sy not in ('NEWLINE', 'EOF'):
 *         args.append(p_test(s))             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1484, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1484, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1485
 *     if s.sy not in ('NEWLINE', 'EOF'):
 *         args.append(p_test(s))
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):
 */
    while (1) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1485, __pyx_L1_error)
      if (!__pyx_t_3) break;

      /* "Cython/Compiler/Parsing.py":1486
 *         args.append(p_test(s))
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy in ('NEWLINE', 'EOF'):
 *                 ends_with_comma = 1
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1487
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *                 ends_with_comma = 1
 *                 break
 */
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_1 = __pyx_v_s->sy;
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1487, __pyx_L1_error)
      if (!__pyx_t_2) {
      } else {
        __pyx_t_3 = __pyx_t_2;
        goto __pyx_L13_bool_binop_done;
      }
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1487, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_2;
      __pyx_L13_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1488
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):
 *                 ends_with_comma = 1             # <<<<<<<<<<<<<<
 *                 break
 *             args.append(p_test(s))
 */
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_DECREF_SET(__pyx_v_ends_with_comma, __pyx_int_1);

        /* "Cython/Compiler/Parsing.py":1489
 *             if s.sy in ('NEWLINE', 'EOF'):
 *                 ends_with_comma = 1
 *                 break             # <<<<<<<<<<<<<<
 *             args.append(p_test(s))
 *     arg_tuple = ExprNodes.TupleNode(pos, args=args)
 */
        goto __pyx_L11_break;

        /* "Cython/Compiler/Parsing.py":1487
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *                 ends_with_comma = 1
 *                 break
 */
      }

      /* "Cython/Compiler/Parsing.py":1490
 *                 ends_with_comma = 1
 *                 break
 *             args.append(p_test(s))             # <<<<<<<<<<<<<<
 *     arg_tuple = ExprNodes.TupleNode(pos, args=args)
 *     return Nodes.PrintStatNode(pos,
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1490, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1490, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L11_break:;

    /* "Cython/Compiler/Parsing.py":1483
 *         stream = None
 *     args = []
 *     if s.sy not in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *         args.append(p_test(s))
 *         while s.sy == ',':
 */
  }

  /* "Cython/Compiler/Parsing.py":1491
 *                 break
 *             args.append(p_test(s))
 *     arg_tuple = ExprNodes.TupleNode(pos, args=args)             # <<<<<<<<<<<<<<
 *     return Nodes.PrintStatNode(pos,
 *         arg_tuple=arg_tuple, stream=stream,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 1491, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_arg_tuple = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":1492
 *             args.append(p_test(s))
 *     arg_tuple = ExprNodes.TupleNode(pos, args=args)
 *     return Nodes.PrintStatNode(pos,             # <<<<<<<<<<<<<<
 *         arg_tuple=arg_tuple, stream=stream,
 *         append_newline=not ends_with_comma)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PrintStatNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":1493
 *     arg_tuple = ExprNodes.TupleNode(pos, args=args)
 *     return Nodes.PrintStatNode(pos,
 *         arg_tuple=arg_tuple, stream=stream,             # <<<<<<<<<<<<<<
 *         append_newline=not ends_with_comma)
 * 
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg_tuple, __pyx_v_arg_tuple) < 0) __PYX_ERR(0, 1493, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_stream, __pyx_v_stream) < 0) __PYX_ERR(0, 1493, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1494
 *     return Nodes.PrintStatNode(pos,
 *         arg_tuple=arg_tuple, stream=stream,
 *         append_newline=not ends_with_comma)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ends_with_comma); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1494, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_append_newline, __pyx_t_1) < 0) __PYX_ERR(0, 1493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1492
 *             args.append(p_test(s))
 *     arg_tuple = ExprNodes.TupleNode(pos, args=args)
 *     return Nodes.PrintStatNode(pos,             # <<<<<<<<<<<<<<
 *         arg_tuple=arg_tuple, stream=stream,
 *         append_newline=not ends_with_comma)
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1469
 * 
 * 
 * def p_print_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'print'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_print_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_ends_with_comma);
  __Pyx_XDECREF(__pyx_v_stream);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_arg_tuple);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1497
 * 
 * 
 * def p_exec_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'exec'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_exec_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_code = NULL;
  int __pyx_v_tuple_variant;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("p_exec_statement", 0);

  /* "Cython/Compiler/Parsing.py":1499
 * def p_exec_statement(s):
 *     # s.sy == 'exec'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     code = p_bit_expr(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1500
 *     # s.sy == 'exec'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     code = p_bit_expr(s)
 *     if isinstance(code, ExprNodes.TupleNode):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1501
 *     pos = s.position()
 *     s.next()
 *     code = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *     if isinstance(code, ExprNodes.TupleNode):
 *         # Py3 compatibility syntax
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_code = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1502
 *     s.next()
 *     code = p_bit_expr(s)
 *     if isinstance(code, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
 *         # Py3 compatibility syntax
 *         tuple_variant = True
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_code, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 1502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1504
 *     if isinstance(code, ExprNodes.TupleNode):
 *         # Py3 compatibility syntax
 *         tuple_variant = True             # <<<<<<<<<<<<<<
 *         args = code.args
 *         if len(args) not in (2, 3):
 */
    __pyx_v_tuple_variant = 1;

    /* "Cython/Compiler/Parsing.py":1505
 *         # Py3 compatibility syntax
 *         tuple_variant = True
 *         args = code.args             # <<<<<<<<<<<<<<
 *         if len(args) not in (2, 3):
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code, __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1505, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_args = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1506
 *         tuple_variant = True
 *         args = code.args
 *         if len(args) not in (2, 3):             # <<<<<<<<<<<<<<
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),
 *                     pos=pos, fatal=False)
 */
    __pyx_t_4 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1506, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_4 != 2) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_t_4 != 3) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1507
 *         args = code.args
 *         if len(args) not in (2, 3):
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),             # <<<<<<<<<<<<<<
 *                     pos=pos, fatal=False)
 *             args = [code]
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1507, __pyx_L1_error)
      __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_expected_tuple_of_length_2_or_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1508
 *         if len(args) not in (2, 3):
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),
 *                     pos=pos, fatal=False)             # <<<<<<<<<<<<<<
 *             args = [code]
 *     else:
 */
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1508, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1507
 *         args = code.args
 *         if len(args) not in (2, 3):
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),             # <<<<<<<<<<<<<<
 *                     pos=pos, fatal=False)
 *             args = [code]
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1509
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),
 *                     pos=pos, fatal=False)
 *             args = [code]             # <<<<<<<<<<<<<<
 *     else:
 *         tuple_variant = False
 */
      __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_code);
      __Pyx_GIVEREF(__pyx_v_code);
      PyList_SET_ITEM(__pyx_t_7, 0, __pyx_v_code);
      __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1506
 *         tuple_variant = True
 *         args = code.args
 *         if len(args) not in (2, 3):             # <<<<<<<<<<<<<<
 *             s.error("expected tuple of length 2 or 3, got length %d" % len(args),
 *                     pos=pos, fatal=False)
 */
    }

    /* "Cython/Compiler/Parsing.py":1502
 *     s.next()
 *     code = p_bit_expr(s)
 *     if isinstance(code, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
 *         # Py3 compatibility syntax
 *         tuple_variant = True
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1511
 *             args = [code]
 *     else:
 *         tuple_variant = False             # <<<<<<<<<<<<<<
 *         args = [code]
 *     if s.sy == 'in':
 */
  /*else*/ {
    __pyx_v_tuple_variant = 0;

    /* "Cython/Compiler/Parsing.py":1512
 *     else:
 *         tuple_variant = False
 *         args = [code]             # <<<<<<<<<<<<<<
 *     if s.sy == 'in':
 *         if tuple_variant:
 */
    __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1512, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_code);
    __Pyx_GIVEREF(__pyx_v_code);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_v_code);
    __pyx_v_args = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1513
 *         tuple_variant = False
 *         args = [code]
 *     if s.sy == 'in':             # <<<<<<<<<<<<<<
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_in, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1513, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1514
 *         args = [code]
 *     if s.sy == 'in':
 *         if tuple_variant:             # <<<<<<<<<<<<<<
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 *                     fatal=False)
 */
    __pyx_t_2 = (__pyx_v_tuple_variant != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1515
 *     if s.sy == 'in':
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",             # <<<<<<<<<<<<<<
 *                     fatal=False)
 *         s.next()
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1515, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":1516
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 *                     fatal=False)             # <<<<<<<<<<<<<<
 *         s.next()
 *         args.append(p_test(s))
 */
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 1516, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1515
 *     if s.sy == 'in':
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",             # <<<<<<<<<<<<<<
 *                     fatal=False)
 *         s.next()
 */
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__85, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1515, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1514
 *         args = [code]
 *     if s.sy == 'in':
 *         if tuple_variant:             # <<<<<<<<<<<<<<
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 *                     fatal=False)
 */
    }

    /* "Cython/Compiler/Parsing.py":1517
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 *                     fatal=False)
 *         s.next()             # <<<<<<<<<<<<<<
 *         args.append(p_test(s))
 *         if s.sy == ',':
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1518
 *                     fatal=False)
 *         s.next()
 *         args.append(p_test(s))             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1518, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_args, __pyx_t_5); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1518, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1519
 *         s.next()
 *         args.append(p_test(s))
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             args.append(p_test(s))
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1519, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1520
 *         args.append(p_test(s))
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             args.append(p_test(s))
 *     return Nodes.ExecStatNode(pos, args=args)
 */
      __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1520, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1521
 *         if s.sy == ',':
 *             s.next()
 *             args.append(p_test(s))             # <<<<<<<<<<<<<<
 *     return Nodes.ExecStatNode(pos, args=args)
 * 
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_args, __pyx_t_5); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1521, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1519
 *         s.next()
 *         args.append(p_test(s))
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             args.append(p_test(s))
 */
    }

    /* "Cython/Compiler/Parsing.py":1513
 *         tuple_variant = False
 *         args = [code]
 *     if s.sy == 'in':             # <<<<<<<<<<<<<<
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 */
  }

  /* "Cython/Compiler/Parsing.py":1522
 *             s.next()
 *             args.append(p_test(s))
 *     return Nodes.ExecStatNode(pos, args=args)             # <<<<<<<<<<<<<<
 * 
 * def p_del_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExecStatNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 1522, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1497
 * 
 * 
 * def p_exec_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'exec'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_exec_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_code);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1524
 *     return Nodes.ExecStatNode(pos, args=args)
 * 
 * def p_del_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'del'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_del_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_del_statement", 0);

  /* "Cython/Compiler/Parsing.py":1526
 * def p_del_statement(s):
 *     # s.sy == 'del'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     # FIXME: 'exprlist' in Python
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1527
 *     # s.sy == 'del'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     # FIXME: 'exprlist' in Python
 *     args = p_simple_expr_list(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1529
 *     s.next()
 *     # FIXME: 'exprlist' in Python
 *     args = p_simple_expr_list(s)             # <<<<<<<<<<<<<<
 *     return Nodes.DelStatNode(pos, args = args)
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_expr_list(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1530
 *     # FIXME: 'exprlist' in Python
 *     args = p_simple_expr_list(s)
 *     return Nodes.DelStatNode(pos, args = args)             # <<<<<<<<<<<<<<
 * 
 * def p_pass_statement(s, with_newline = 0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_DelStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 1530, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1524
 *     return Nodes.ExecStatNode(pos, args=args)
 * 
 * def p_del_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'del'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_del_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1532
 *     return Nodes.DelStatNode(pos, args = args)
 * 
 * def p_pass_statement(s, with_newline = 0):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.expect('pass')
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_pass_statement *__pyx_optional_args) {
  int __pyx_v_with_newline = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_pass_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_with_newline = __pyx_optional_args->with_newline;
    }
  }

  /* "Cython/Compiler/Parsing.py":1533
 * 
 * def p_pass_statement(s, with_newline = 0):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.expect('pass')
 *     if with_newline:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1534
 * def p_pass_statement(s, with_newline = 0):
 *     pos = s.position()
 *     s.expect('pass')             # <<<<<<<<<<<<<<
 *     if with_newline:
 *         s.expect_newline("Expected a newline", ignore_semicolon=True)
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_pass, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 1534, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1535
 *     pos = s.position()
 *     s.expect('pass')
 *     if with_newline:             # <<<<<<<<<<<<<<
 *         s.expect_newline("Expected a newline", ignore_semicolon=True)
 *     return Nodes.PassStatNode(pos)
 */
  __pyx_t_2 = (__pyx_v_with_newline != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1536
 *     s.expect('pass')
 *     if with_newline:
 *         s.expect_newline("Expected a newline", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *     return Nodes.PassStatNode(pos)
 * 
 */
    __pyx_t_3.__pyx_n = 2;
    __pyx_t_3.message = __pyx_kp_u_Expected_a_newline;
    __pyx_t_3.ignore_semicolon = 1;
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1535
 *     pos = s.position()
 *     s.expect('pass')
 *     if with_newline:             # <<<<<<<<<<<<<<
 *         s.expect_newline("Expected a newline", ignore_semicolon=True)
 *     return Nodes.PassStatNode(pos)
 */
  }

  /* "Cython/Compiler/Parsing.py":1537
 *     if with_newline:
 *         s.expect_newline("Expected a newline", ignore_semicolon=True)
 *     return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_break_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  if (!__pyx_t_5) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1537, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1537, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1537, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pos);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1537, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1532
 *     return Nodes.DelStatNode(pos, args = args)
 * 
 * def p_pass_statement(s, with_newline = 0):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.expect('pass')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_pass_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1539
 *     return Nodes.PassStatNode(pos)
 * 
 * def p_break_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'break'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_break_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_break_statement", 0);

  /* "Cython/Compiler/Parsing.py":1541
 * def p_break_statement(s):
 *     # s.sy == 'break'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     return Nodes.BreakStatNode(pos)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1542
 *     # s.sy == 'break'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     return Nodes.BreakStatNode(pos)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1543
 *     pos = s.position()
 *     s.next()
 *     return Nodes.BreakStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_continue_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_BreakStatNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (!__pyx_t_3) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1543, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_pos);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1539
 *     return Nodes.PassStatNode(pos)
 * 
 * def p_break_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'break'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_break_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1545
 *     return Nodes.BreakStatNode(pos)
 * 
 * def p_continue_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'continue'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_continue_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_continue_statement", 0);

  /* "Cython/Compiler/Parsing.py":1547
 * def p_continue_statement(s):
 *     # s.sy == 'continue'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     return Nodes.ContinueStatNode(pos)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1548
 *     # s.sy == 'continue'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     return Nodes.ContinueStatNode(pos)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1549
 *     pos = s.position()
 *     s.next()
 *     return Nodes.ContinueStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_return_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ContinueStatNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (!__pyx_t_3) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1549, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1549, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1549, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_pos);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1549, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1545
 *     return Nodes.BreakStatNode(pos)
 * 
 * def p_continue_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'continue'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_continue_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1551
 *     return Nodes.ContinueStatNode(pos)
 * 
 * def p_return_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'return'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_return_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_return_statement", 0);

  /* "Cython/Compiler/Parsing.py":1553
 * def p_return_statement(s):
 *     # s.sy == 'return'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     if s.sy not in statement_terminators:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1554
 *     # s.sy == 'return'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy not in statement_terminators:
 *         value = p_testlist(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1555
 *     pos = s.position()
 *     s.next()
 *     if s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         value = p_testlist(s)
 *     else:
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1555, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1556
 *     s.next()
 *     if s.sy not in statement_terminators:
 *         value = p_testlist(s)             # <<<<<<<<<<<<<<
 *     else:
 *         value = None
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1555
 *     pos = s.position()
 *     s.next()
 *     if s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         value = p_testlist(s)
 *     else:
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1558
 *         value = p_testlist(s)
 *     else:
 *         value = None             # <<<<<<<<<<<<<<
 *     return Nodes.ReturnStatNode(pos, value = value)
 * 
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_value = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1559
 *     else:
 *         value = None
 *     return Nodes.ReturnStatNode(pos, value = value)             # <<<<<<<<<<<<<<
 * 
 * def p_raise_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ReturnStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 1559, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1551
 *     return Nodes.ContinueStatNode(pos)
 * 
 * def p_return_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'return'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_return_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1561
 *     return Nodes.ReturnStatNode(pos, value = value)
 * 
 * def p_raise_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'raise'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_raise_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_exc_type = NULL;
  PyObject *__pyx_v_exc_value = NULL;
  PyObject *__pyx_v_exc_tb = NULL;
  PyObject *__pyx_v_cause = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_raise_statement", 0);

  /* "Cython/Compiler/Parsing.py":1563
 * def p_raise_statement(s):
 *     # s.sy == 'raise'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     exc_type = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1564
 *     # s.sy == 'raise'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     exc_type = None
 *     exc_value = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1565
 *     pos = s.position()
 *     s.next()
 *     exc_type = None             # <<<<<<<<<<<<<<
 *     exc_value = None
 *     exc_tb = None
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_exc_type = Py_None;

  /* "Cython/Compiler/Parsing.py":1566
 *     s.next()
 *     exc_type = None
 *     exc_value = None             # <<<<<<<<<<<<<<
 *     exc_tb = None
 *     cause = None
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_exc_value = Py_None;

  /* "Cython/Compiler/Parsing.py":1567
 *     exc_type = None
 *     exc_value = None
 *     exc_tb = None             # <<<<<<<<<<<<<<
 *     cause = None
 *     if s.sy not in statement_terminators:
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_exc_tb = Py_None;

  /* "Cython/Compiler/Parsing.py":1568
 *     exc_value = None
 *     exc_tb = None
 *     cause = None             # <<<<<<<<<<<<<<
 *     if s.sy not in statement_terminators:
 *         exc_type = p_test(s)
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_cause = Py_None;

  /* "Cython/Compiler/Parsing.py":1569
 *     exc_tb = None
 *     cause = None
 *     if s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         exc_type = p_test(s)
 *         if s.sy == ',':
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1570
 *     cause = None
 *     if s.sy not in statement_terminators:
 *         exc_type = p_test(s)             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1570, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_exc_type, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1571
 *     if s.sy not in statement_terminators:
 *         exc_type = p_test(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             exc_value = p_test(s)
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1571, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1572
 *         exc_type = p_test(s)
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             exc_value = p_test(s)
 *             if s.sy == ',':
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1573
 *         if s.sy == ',':
 *             s.next()
 *             exc_value = p_test(s)             # <<<<<<<<<<<<<<
 *             if s.sy == ',':
 *                 s.next()
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1573, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_exc_value, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1574
 *             s.next()
 *             exc_value = p_test(s)
 *             if s.sy == ',':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 exc_tb = p_test(s)
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1574, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":1575
 *             exc_value = p_test(s)
 *             if s.sy == ',':
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 exc_tb = p_test(s)
 *         elif s.sy == 'from':
 */
        __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1575, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1576
 *             if s.sy == ',':
 *                 s.next()
 *                 exc_tb = p_test(s)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'from':
 *             s.next()
 */
        __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1576, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_exc_tb, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1574
 *             s.next()
 *             exc_value = p_test(s)
 *             if s.sy == ',':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 exc_tb = p_test(s)
 */
      }

      /* "Cython/Compiler/Parsing.py":1571
 *     if s.sy not in statement_terminators:
 *         exc_type = p_test(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             exc_value = p_test(s)
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":1577
 *                 s.next()
 *                 exc_tb = p_test(s)
 *         elif s.sy == 'from':             # <<<<<<<<<<<<<<
 *             s.next()
 *             cause = p_test(s)
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1577, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1578
 *                 exc_tb = p_test(s)
 *         elif s.sy == 'from':
 *             s.next()             # <<<<<<<<<<<<<<
 *             cause = p_test(s)
 *     if exc_type or exc_value or exc_tb:
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1579
 *         elif s.sy == 'from':
 *             s.next()
 *             cause = p_test(s)             # <<<<<<<<<<<<<<
 *     if exc_type or exc_value or exc_tb:
 *         return Nodes.RaiseStatNode(pos,
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1579, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_cause, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1577
 *                 s.next()
 *                 exc_tb = p_test(s)
 *         elif s.sy == 'from':             # <<<<<<<<<<<<<<
 *             s.next()
 *             cause = p_test(s)
 */
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1569
 *     exc_tb = None
 *     cause = None
 *     if s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         exc_type = p_test(s)
 *         if s.sy == ',':
 */
  }

  /* "Cython/Compiler/Parsing.py":1580
 *             s.next()
 *             cause = p_test(s)
 *     if exc_type or exc_value or exc_tb:             # <<<<<<<<<<<<<<
 *         return Nodes.RaiseStatNode(pos,
 *             exc_type = exc_type,
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_exc_type); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1580, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __pyx_t_3 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_exc_value); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1580, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __pyx_t_3 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_exc_tb); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1580, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1581
 *             cause = p_test(s)
 *     if exc_type or exc_value or exc_tb:
 *         return Nodes.RaiseStatNode(pos,             # <<<<<<<<<<<<<<
 *             exc_type = exc_type,
 *             exc_value = exc_value,
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_RaiseStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":1582
 *     if exc_type or exc_value or exc_tb:
 *         return Nodes.RaiseStatNode(pos,
 *             exc_type = exc_type,             # <<<<<<<<<<<<<<
 *             exc_value = exc_value,
 *             exc_tb = exc_tb,
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_exc_type, __pyx_v_exc_type) < 0) __PYX_ERR(0, 1582, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1583
 *         return Nodes.RaiseStatNode(pos,
 *             exc_type = exc_type,
 *             exc_value = exc_value,             # <<<<<<<<<<<<<<
 *             exc_tb = exc_tb,
 *             cause = cause)
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_exc_value, __pyx_v_exc_value) < 0) __PYX_ERR(0, 1582, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1584
 *             exc_type = exc_type,
 *             exc_value = exc_value,
 *             exc_tb = exc_tb,             # <<<<<<<<<<<<<<
 *             cause = cause)
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_exc_tb, __pyx_v_exc_tb) < 0) __PYX_ERR(0, 1582, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1585
 *             exc_value = exc_value,
 *             exc_tb = exc_tb,
 *             cause = cause)             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.ReraiseStatNode(pos)
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cause, __pyx_v_cause) < 0) __PYX_ERR(0, 1582, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1581
 *             cause = p_test(s)
 *     if exc_type or exc_value or exc_tb:
 *         return Nodes.RaiseStatNode(pos,             # <<<<<<<<<<<<<<
 *             exc_type = exc_type,
 *             exc_value = exc_value,
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1580
 *             s.next()
 *             cause = p_test(s)
 *     if exc_type or exc_value or exc_tb:             # <<<<<<<<<<<<<<
 *         return Nodes.RaiseStatNode(pos,
 *             exc_type = exc_type,
 */
  }

  /* "Cython/Compiler/Parsing.py":1587
 *             cause = cause)
 *     else:
 *         return Nodes.ReraiseStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ReraiseStatNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1587, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (!__pyx_t_4) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pos); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_pos};
        __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1587, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_pos};
        __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1587, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1587, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pos);
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1587, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1561
 *     return Nodes.ReturnStatNode(pos, value = value)
 * 
 * def p_raise_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'raise'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_raise_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_exc_type);
  __Pyx_XDECREF(__pyx_v_exc_value);
  __Pyx_XDECREF(__pyx_v_exc_tb);
  __Pyx_XDECREF(__pyx_v_cause);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1590
 * 
 * 
 * def p_import_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy in ('import', 'cimport')
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_import_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_items = NULL;
  PyObject *__pyx_v_stats = NULL;
  PyObject *__pyx_v_is_absolute = NULL;
  PyObject *__pyx_v_target_name = NULL;
  PyObject *__pyx_v_dotted_name = NULL;
  PyObject *__pyx_v_as_name = NULL;
  PyObject *__pyx_v_stat = NULL;
  PyObject *__pyx_v_name_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  int __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  __Pyx_RefNannySetupContext("p_import_statement", 0);

  /* "Cython/Compiler/Parsing.py":1592
 * def p_import_statement(s):
 *     # s.sy in ('import', 'cimport')
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     kind = s.sy
 *     s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1593
 *     # s.sy in ('import', 'cimport')
 *     pos = s.position()
 *     kind = s.sy             # <<<<<<<<<<<<<<
 *     s.next()
 *     items = [p_dotted_name(s, as_allowed=1)]
 */
  __pyx_t_1 = __pyx_v_s->sy;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_kind = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1594
 *     pos = s.position()
 *     kind = s.sy
 *     s.next()             # <<<<<<<<<<<<<<
 *     items = [p_dotted_name(s, as_allowed=1)]
 *     while s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1595
 *     kind = s.sy
 *     s.next()
 *     items = [p_dotted_name(s, as_allowed=1)]             # <<<<<<<<<<<<<<
 *     while s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_items = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1596
 *     s.next()
 *     items = [p_dotted_name(s, as_allowed=1)]
 *     while s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         items.append(p_dotted_name(s, as_allowed=1))
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1596, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1597
 *     items = [p_dotted_name(s, as_allowed=1)]
 *     while s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         items.append(p_dotted_name(s, as_allowed=1))
 *     stats = []
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1597, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1598
 *     while s.sy == ',':
 *         s.next()
 *         items.append(p_dotted_name(s, as_allowed=1))             # <<<<<<<<<<<<<<
 *     stats = []
 *     is_absolute = Future.absolute_import in s.context.future_directives
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1598, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1599
 *         s.next()
 *         items.append(p_dotted_name(s, as_allowed=1))
 *     stats = []             # <<<<<<<<<<<<<<
 *     is_absolute = Future.absolute_import in s.context.future_directives
 *     for pos, target_name, dotted_name, as_name in items:
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_stats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1600
 *         items.append(p_dotted_name(s, as_allowed=1))
 *     stats = []
 *     is_absolute = Future.absolute_import in s.context.future_directives             # <<<<<<<<<<<<<<
 *     for pos, target_name, dotted_name, as_name in items:
 *         if kind == 'cimport':
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_n_s_absolute_import); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1600, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_is_absolute = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1601
 *     stats = []
 *     is_absolute = Future.absolute_import in s.context.future_directives
 *     for pos, target_name, dotted_name, as_name in items:             # <<<<<<<<<<<<<<
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(
 */
  __pyx_t_1 = __pyx_v_items; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1601, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1601, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
      PyObject* sequence = __pyx_t_2;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 4)) {
        if (size > 4) __Pyx_RaiseTooManyValuesError(4);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 1601, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); 
        __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); 
      } else {
        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_8 = PyList_GET_ITEM(sequence, 2); 
        __pyx_t_9 = PyList_GET_ITEM(sequence, 3); 
      }
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_9);
      #else
      {
        Py_ssize_t i;
        PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9};
        for (i=0; i < 4; i++) {
          PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1601, __pyx_L1_error)
          __Pyx_GOTREF(item);
          *(temps[i]) = item;
        }
      }
      #endif
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else {
      Py_ssize_t index = -1;
      PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9};
      __pyx_t_10 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1601, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
      for (index=0; index < 4; index++) {
        PyObject* item = __pyx_t_11(__pyx_t_10); if (unlikely(!item)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(item);
        *(temps[index]) = item;
      }
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 4) < 0) __PYX_ERR(0, 1601, __pyx_L1_error)
      __pyx_t_11 = NULL;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 1601, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __Pyx_DECREF_SET(__pyx_v_pos, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_XDECREF_SET(__pyx_v_target_name, __pyx_t_7);
    __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_dotted_name, __pyx_t_8);
    __pyx_t_8 = 0;
    __Pyx_XDECREF_SET(__pyx_v_as_name, __pyx_t_9);
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1602
 *     is_absolute = Future.absolute_import in s.context.future_directives
 *     for pos, target_name, dotted_name, as_name in items:
 *         if kind == 'cimport':             # <<<<<<<<<<<<<<
 *             stat = Nodes.CImportStatNode(
 *                 pos,
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1602, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1603
 *     for pos, target_name, dotted_name, as_name in items:
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 module_name=dotted_name,
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CImportStatNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "Cython/Compiler/Parsing.py":1604
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(
 *                 pos,             # <<<<<<<<<<<<<<
 *                 module_name=dotted_name,
 *                 as_name=as_name,
 */
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":1605
 *             stat = Nodes.CImportStatNode(
 *                 pos,
 *                 module_name=dotted_name,             # <<<<<<<<<<<<<<
 *                 as_name=as_name,
 *                 is_absolute=is_absolute)
 */
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1605, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_module_name, __pyx_v_dotted_name) < 0) __PYX_ERR(0, 1605, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1606
 *                 pos,
 *                 module_name=dotted_name,
 *                 as_name=as_name,             # <<<<<<<<<<<<<<
 *                 is_absolute=is_absolute)
 *         else:
 */
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_as_name, __pyx_v_as_name) < 0) __PYX_ERR(0, 1605, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1607
 *                 module_name=dotted_name,
 *                 as_name=as_name,
 *                 is_absolute=is_absolute)             # <<<<<<<<<<<<<<
 *         else:
 *             if as_name and "." in dotted_name:
 */
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_is_absolute, __pyx_v_is_absolute) < 0) __PYX_ERR(0, 1605, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1603
 *     for pos, target_name, dotted_name, as_name in items:
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 module_name=dotted_name,
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_stat, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1602
 *     is_absolute = Future.absolute_import in s.context.future_directives
 *     for pos, target_name, dotted_name, as_name in items:
 *         if kind == 'cimport':             # <<<<<<<<<<<<<<
 *             stat = Nodes.CImportStatNode(
 *                 pos,
 */
      goto __pyx_L9;
    }

    /* "Cython/Compiler/Parsing.py":1609
 *                 is_absolute=is_absolute)
 *         else:
 *             if as_name and "." in dotted_name:             # <<<<<<<<<<<<<<
 *                 name_list = ExprNodes.ListNode(pos, args=[
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])
 */
    /*else*/ {
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_as_name); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1609, __pyx_L1_error)
      if (__pyx_t_12) {
      } else {
        __pyx_t_3 = __pyx_t_12;
        goto __pyx_L11_bool_binop_done;
      }
      __pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__37, __pyx_v_dotted_name, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1609, __pyx_L1_error)
      __pyx_t_13 = (__pyx_t_12 != 0);
      __pyx_t_3 = __pyx_t_13;
      __pyx_L11_bool_binop_done:;
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":1610
 *         else:
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args=[             # <<<<<<<<<<<<<<
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])
 *             else:
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ListNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
        __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);

        /* "Cython/Compiler/Parsing.py":1611
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args=[
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])             # <<<<<<<<<<<<<<
 *             else:
 *                 name_list = None
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
        __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_tuple__86, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_value, __pyx_t_15) < 0) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "Cython/Compiler/Parsing.py":1610
 *         else:
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args=[             # <<<<<<<<<<<<<<
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])
 *             else:
 */
        __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_GIVEREF(__pyx_t_15);
        PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_15);
        __pyx_t_15 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_args, __pyx_t_10) < 0) __PYX_ERR(0, 1610, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF_SET(__pyx_v_name_list, __pyx_t_10);
        __pyx_t_10 = 0;

        /* "Cython/Compiler/Parsing.py":1609
 *                 is_absolute=is_absolute)
 *         else:
 *             if as_name and "." in dotted_name:             # <<<<<<<<<<<<<<
 *                 name_list = ExprNodes.ListNode(pos, args=[
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])
 */
        goto __pyx_L10;
      }

      /* "Cython/Compiler/Parsing.py":1613
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])
 *             else:
 *                 name_list = None             # <<<<<<<<<<<<<<
 *             stat = Nodes.SingleAssignmentNode(
 *                 pos,
 */
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_name_list, Py_None);
      }
      __pyx_L10:;

      /* "Cython/Compiler/Parsing.py":1614
 *             else:
 *                 name_list = None
 *             stat = Nodes.SingleAssignmentNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),
 */
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_SingleAssignmentNode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1614, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);

      /* "Cython/Compiler/Parsing.py":1615
 *                 name_list = None
 *             stat = Nodes.SingleAssignmentNode(
 *                 pos,             # <<<<<<<<<<<<<<
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),
 *                 rhs=ExprNodes.ImportNode(
 */
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1614, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":1616
 *             stat = Nodes.SingleAssignmentNode(
 *                 pos,
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),             # <<<<<<<<<<<<<<
 *                 rhs=ExprNodes.ImportNode(
 *                     pos,
 */
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_as_name); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1616, __pyx_L1_error)
      if (!__pyx_t_3) {
      } else {
        __Pyx_INCREF(__pyx_v_as_name);
        __pyx_t_2 = __pyx_v_as_name;
        goto __pyx_L13_bool_binop_done;
      }
      __Pyx_INCREF(__pyx_v_target_name);
      __pyx_t_2 = __pyx_v_target_name;
      __pyx_L13_bool_binop_done:;
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_15, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_lhs, __pyx_t_2) < 0) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":1617
 *                 pos,
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),
 *                 rhs=ExprNodes.ImportNode(             # <<<<<<<<<<<<<<
 *                     pos,
 *                     module_name=ExprNodes.IdentifierStringNode(pos, value=dotted_name),
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ImportNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "Cython/Compiler/Parsing.py":1618
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),
 *                 rhs=ExprNodes.ImportNode(
 *                     pos,             # <<<<<<<<<<<<<<
 *                     module_name=ExprNodes.IdentifierStringNode(pos, value=dotted_name),
 *                     level=0 if is_absolute else None,
 */
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":1619
 *                 rhs=ExprNodes.ImportNode(
 *                     pos,
 *                     module_name=ExprNodes.IdentifierStringNode(pos, value=dotted_name),             # <<<<<<<<<<<<<<
 *                     level=0 if is_absolute else None,
 *                     name_list=name_list))
 */
      __pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_pos);
      __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_value, __pyx_v_dotted_name) < 0) __PYX_ERR(0, 1619, __pyx_L1_error)
      __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_module_name, __pyx_t_17) < 0) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

      /* "Cython/Compiler/Parsing.py":1620
 *                     pos,
 *                     module_name=ExprNodes.IdentifierStringNode(pos, value=dotted_name),
 *                     level=0 if is_absolute else None,             # <<<<<<<<<<<<<<
 *                     name_list=name_list))
 *         stats.append(stat)
 */
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_is_absolute); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1620, __pyx_L1_error)
      if (__pyx_t_3) {
        __Pyx_INCREF(__pyx_int_0);
        __pyx_t_17 = __pyx_int_0;
      } else {
        __Pyx_INCREF(Py_None);
        __pyx_t_17 = Py_None;
      }
      if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_level, __pyx_t_17) < 0) __PYX_ERR(0, 1619, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

      /* "Cython/Compiler/Parsing.py":1621
 *                     module_name=ExprNodes.IdentifierStringNode(pos, value=dotted_name),
 *                     level=0 if is_absolute else None,
 *                     name_list=name_list))             # <<<<<<<<<<<<<<
 *         stats.append(stat)
 *     return Nodes.StatListNode(pos, stats=stats)
 */
      if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_name_list, __pyx_v_name_list) < 0) __PYX_ERR(0, 1619, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1617
 *                 pos,
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),
 *                 rhs=ExprNodes.ImportNode(             # <<<<<<<<<<<<<<
 *                     pos,
 *                     module_name=ExprNodes.IdentifierStringNode(pos, value=dotted_name),
 */
      __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_rhs, __pyx_t_17) < 0) __PYX_ERR(0, 1616, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

      /* "Cython/Compiler/Parsing.py":1614
 *             else:
 *                 name_list = None
 *             stat = Nodes.SingleAssignmentNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 lhs=ExprNodes.NameNode(pos, name=as_name or target_name),
 */
      __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1614, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_stat, __pyx_t_17);
      __pyx_t_17 = 0;
    }
    __pyx_L9:;

    /* "Cython/Compiler/Parsing.py":1622
 *                     level=0 if is_absolute else None,
 *                     name_list=name_list))
 *         stats.append(stat)             # <<<<<<<<<<<<<<
 *     return Nodes.StatListNode(pos, stats=stats)
 * 
 */
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_stats, __pyx_v_stat); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1622, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1601
 *     stats = []
 *     is_absolute = Future.absolute_import in s.context.future_directives
 *     for pos, target_name, dotted_name, as_name in items:             # <<<<<<<<<<<<<<
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1623
 *                     name_list=name_list))
 *         stats.append(stat)
 *     return Nodes.StatListNode(pos, stats=stats)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_stats, __pyx_v_stats) < 0) __PYX_ERR(0, 1623, __pyx_L1_error)
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1590
 * 
 * 
 * def p_import_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy in ('import', 'cimport')
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_import_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XDECREF(__pyx_v_stats);
  __Pyx_XDECREF(__pyx_v_is_absolute);
  __Pyx_XDECREF(__pyx_v_target_name);
  __Pyx_XDECREF(__pyx_v_dotted_name);
  __Pyx_XDECREF(__pyx_v_as_name);
  __Pyx_XDECREF(__pyx_v_stat);
  __Pyx_XDECREF(__pyx_v_name_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1626
 * 
 * 
 * def p_from_import_statement(s, first_statement = 0):             # <<<<<<<<<<<<<<
 *     # s.sy == 'from'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_from_import_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement *__pyx_optional_args) {
  int __pyx_v_first_statement = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_level = NULL;
  PyObject *__pyx_v_dotted_name_pos = NULL;
  PyObject *__pyx_v_dotted_name = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_is_cimport = NULL;
  int __pyx_v_is_parenthesized;
  PyObject *__pyx_v_imported_names = NULL;
  PyObject *__pyx_v_name_pos = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_as_name = NULL;
  PyObject *__pyx_v_directive = NULL;
  PyObject *__pyx_v_imported_name_strings = NULL;
  PyObject *__pyx_v_items = NULL;
  PyObject *__pyx_v_import_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *(*__pyx_t_10)(PyObject *);
  int __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  __Pyx_RefNannySetupContext("p_from_import_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_first_statement = __pyx_optional_args->first_statement;
    }
  }

  /* "Cython/Compiler/Parsing.py":1628
 * def p_from_import_statement(s, first_statement = 0):
 *     # s.sy == 'from'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     if s.sy == '.':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1629
 *     # s.sy == 'from'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy == '.':
 *         # count relative import level
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1630
 *     pos = s.position()
 *     s.next()
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         # count relative import level
 *         level = 0
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1630, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1632
 *     if s.sy == '.':
 *         # count relative import level
 *         level = 0             # <<<<<<<<<<<<<<
 *         while s.sy == '.':
 *             level += 1
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_level = __pyx_int_0;

    /* "Cython/Compiler/Parsing.py":1633
 *         # count relative import level
 *         level = 0
 *         while s.sy == '.':             # <<<<<<<<<<<<<<
 *             level += 1
 *             s.next()
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1633, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":1634
 *         level = 0
 *         while s.sy == '.':
 *             level += 1             # <<<<<<<<<<<<<<
 *             s.next()
 *     else:
 */
      __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1634, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_level, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1635
 *         while s.sy == '.':
 *             level += 1
 *             s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         level = None
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":1630
 *     pos = s.position()
 *     s.next()
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         # count relative import level
 *         level = 0
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1637
 *             s.next()
 *     else:
 *         level = None             # <<<<<<<<<<<<<<
 *     if level is not None and s.sy in ('import', 'cimport'):
 *         # we are dealing with "from .. import foo, bar"
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_level = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1638
 *     else:
 *         level = None
 *     if level is not None and s.sy in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), s.context.intern_ustring('')
 */
  __pyx_t_3 = (__pyx_v_level != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_1 = __pyx_v_s->sy;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1638, __pyx_L1_error)
  if (!__pyx_t_3) {
  } else {
    __pyx_t_4 = __pyx_t_3;
    goto __pyx_L9_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1638, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_3;
  __pyx_L9_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1640
 *     if level is not None and s.sy in ('import', 'cimport'):
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), s.context.intern_ustring('')             # <<<<<<<<<<<<<<
 *     else:
 *         if level is None and Future.absolute_import in s.context.future_directives:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__87, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_dotted_name_pos = __pyx_t_1;
    __pyx_t_1 = 0;
    __pyx_v_dotted_name = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1638
 *     else:
 *         level = None
 *     if level is not None and s.sy in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), s.context.intern_ustring('')
 */
    goto __pyx_L6;
  }

  /* "Cython/Compiler/Parsing.py":1642
 *         dotted_name_pos, dotted_name = s.position(), s.context.intern_ustring('')
 *     else:
 *         if level is None and Future.absolute_import in s.context.future_directives:             # <<<<<<<<<<<<<<
 *             level = 0
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_level == Py_None);
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_n_s_absolute_import); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1642, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L12_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1643
 *     else:
 *         if level is None and Future.absolute_import in s.context.future_directives:
 *             level = 0             # <<<<<<<<<<<<<<
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 *     if s.sy not in ('import', 'cimport'):
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF_SET(__pyx_v_level, __pyx_int_0);

      /* "Cython/Compiler/Parsing.py":1642
 *         dotted_name_pos, dotted_name = s.position(), s.context.intern_ustring('')
 *     else:
 *         if level is None and Future.absolute_import in s.context.future_directives:             # <<<<<<<<<<<<<<
 *             level = 0
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 */
    }

    /* "Cython/Compiler/Parsing.py":1644
 *         if level is None and Future.absolute_import in s.context.future_directives:
 *             level = 0
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)             # <<<<<<<<<<<<<<
 *     if s.sy not in ('import', 'cimport'):
 *         s.error("Expected 'import' or 'cimport'")
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1644, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 4)) {
        if (size > 4) __Pyx_RaiseTooManyValuesError(4);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 1644, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 3); 
      } else {
        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_7 = PyList_GET_ITEM(sequence, 2); 
        __pyx_t_8 = PyList_GET_ITEM(sequence, 3); 
      }
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      #else
      {
        Py_ssize_t i;
        PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_5,&__pyx_t_7,&__pyx_t_8};
        for (i=0; i < 4; i++) {
          PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1644, __pyx_L1_error)
          __Pyx_GOTREF(item);
          *(temps[i]) = item;
        }
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_5,&__pyx_t_7,&__pyx_t_8};
      __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1644, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
      for (index=0; index < 4; index++) {
        PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L14_unpacking_failed;
        __Pyx_GOTREF(item);
        *(temps[index]) = item;
      }
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 4) < 0) __PYX_ERR(0, 1644, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L15_unpacking_done;
      __pyx_L14_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 1644, __pyx_L1_error)
      __pyx_L15_unpacking_done:;
    }
    __pyx_v_dotted_name_pos = __pyx_t_6;
    __pyx_t_6 = 0;
    __pyx_v__ = __pyx_t_5;
    __pyx_t_5 = 0;
    __pyx_v_dotted_name = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v__, __pyx_t_8);
    __pyx_t_8 = 0;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":1645
 *             level = 0
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 *     if s.sy not in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         s.error("Expected 'import' or 'cimport'")
 *     kind = s.sy
 */
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_1 = __pyx_v_s->sy;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_import, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1645, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L17_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cimport, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1645, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L17_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1646
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 *     if s.sy not in ('import', 'cimport'):
 *         s.error("Expected 'import' or 'cimport'")             # <<<<<<<<<<<<<<
 *     kind = s.sy
 *     s.next()
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1646, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__88, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1646, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1645
 *             level = 0
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 *     if s.sy not in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         s.error("Expected 'import' or 'cimport'")
 *     kind = s.sy
 */
  }

  /* "Cython/Compiler/Parsing.py":1647
 *     if s.sy not in ('import', 'cimport'):
 *         s.error("Expected 'import' or 'cimport'")
 *     kind = s.sy             # <<<<<<<<<<<<<<
 *     s.next()
 * 
 */
  __pyx_t_8 = __pyx_v_s->sy;
  __Pyx_INCREF(__pyx_t_8);
  __pyx_v_kind = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":1648
 *         s.error("Expected 'import' or 'cimport'")
 *     kind = s.sy
 *     s.next()             # <<<<<<<<<<<<<<
 * 
 *     is_cimport = kind == 'cimport'
 */
  __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":1650
 *     s.next()
 * 
 *     is_cimport = kind == 'cimport'             # <<<<<<<<<<<<<<
 *     is_parenthesized = False
 *     if s.sy == '*':
 */
  __pyx_t_8 = PyObject_RichCompare(__pyx_v_kind, __pyx_n_u_cimport, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1650, __pyx_L1_error)
  __pyx_v_is_cimport = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":1651
 * 
 *     is_cimport = kind == 'cimport'
 *     is_parenthesized = False             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         imported_names = [(s.position(), s.context.intern_ustring("*"), None, None)]
 */
  __pyx_v_is_parenthesized = 0;

  /* "Cython/Compiler/Parsing.py":1652
 *     is_cimport = kind == 'cimport'
 *     is_parenthesized = False
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         imported_names = [(s.position(), s.context.intern_ustring("*"), None, None)]
 *         s.next()
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1652, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1653
 *     is_parenthesized = False
 *     if s.sy == '*':
 *         imported_names = [(s.position(), s.context.intern_ustring("*"), None, None)]             # <<<<<<<<<<<<<<
 *         s.next()
 *     else:
 */
    __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__89, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None);
    __pyx_t_8 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1653, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_imported_names = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1654
 *     if s.sy == '*':
 *         imported_names = [(s.position(), s.context.intern_ustring("*"), None, None)]
 *         s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         if s.sy == '(':
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1652
 *     is_cimport = kind == 'cimport'
 *     is_parenthesized = False
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         imported_names = [(s.position(), s.context.intern_ustring("*"), None, None)]
 *         s.next()
 */
    goto __pyx_L19;
  }

  /* "Cython/Compiler/Parsing.py":1656
 *         s.next()
 *     else:
 *         if s.sy == '(':             # <<<<<<<<<<<<<<
 *             is_parenthesized = True
 *             s.next()
 */
  /*else*/ {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1656, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1657
 *     else:
 *         if s.sy == '(':
 *             is_parenthesized = True             # <<<<<<<<<<<<<<
 *             s.next()
 *         imported_names = [p_imported_name(s, is_cimport)]
 */
      __pyx_v_is_parenthesized = 1;

      /* "Cython/Compiler/Parsing.py":1658
 *         if s.sy == '(':
 *             is_parenthesized = True
 *             s.next()             # <<<<<<<<<<<<<<
 *         imported_names = [p_imported_name(s, is_cimport)]
 *     while s.sy == ',':
 */
      __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1658, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1656
 *         s.next()
 *     else:
 *         if s.sy == '(':             # <<<<<<<<<<<<<<
 *             is_parenthesized = True
 *             s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":1659
 *             is_parenthesized = True
 *             s.next()
 *         imported_names = [p_imported_name(s, is_cimport)]             # <<<<<<<<<<<<<<
 *     while s.sy == ',':
 *         s.next()
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_is_cimport); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1659, __pyx_L1_error)
    __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_imported_name(__pyx_v_s, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1659, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1659, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_v_imported_names = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
  }
  __pyx_L19:;

  /* "Cython/Compiler/Parsing.py":1660
 *             s.next()
 *         imported_names = [p_imported_name(s, is_cimport)]
 *     while s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if is_parenthesized and s.sy == ')':
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1660, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1661
 *         imported_names = [p_imported_name(s, is_cimport)]
 *     while s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if is_parenthesized and s.sy == ')':
 *             break
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1662
 *     while s.sy == ',':
 *         s.next()
 *         if is_parenthesized and s.sy == ')':             # <<<<<<<<<<<<<<
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))
 */
    __pyx_t_2 = (__pyx_v_is_parenthesized != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L24_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__31, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1662, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_2;
    __pyx_L24_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1663
 *         s.next()
 *         if is_parenthesized and s.sy == ')':
 *             break             # <<<<<<<<<<<<<<
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:
 */
      goto __pyx_L22_break;

      /* "Cython/Compiler/Parsing.py":1662
 *     while s.sy == ',':
 *         s.next()
 *         if is_parenthesized and s.sy == ')':             # <<<<<<<<<<<<<<
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))
 */
    }

    /* "Cython/Compiler/Parsing.py":1664
 *         if is_parenthesized and s.sy == ')':
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))             # <<<<<<<<<<<<<<
 *     if is_parenthesized:
 *         s.expect(')')
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_is_cimport); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1664, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_imported_name(__pyx_v_s, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_imported_names, __pyx_t_1); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1664, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L22_break:;

  /* "Cython/Compiler/Parsing.py":1665
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *     if dotted_name == '__future__':
 */
  __pyx_t_3 = (__pyx_v_is_parenthesized != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1666
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:
 *         s.expect(')')             # <<<<<<<<<<<<<<
 *     if dotted_name == '__future__':
 *         if not first_statement:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_3 == -2)) __PYX_ERR(0, 1666, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1665
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *     if dotted_name == '__future__':
 */
  }

  /* "Cython/Compiler/Parsing.py":1667
 *     if is_parenthesized:
 *         s.expect(')')
 *     if dotted_name == '__future__':             # <<<<<<<<<<<<<<
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_dotted_name, __pyx_n_u_future, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1667, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1668
 *         s.expect(')')
 *     if dotted_name == '__future__':
 *         if not first_statement:             # <<<<<<<<<<<<<<
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level:
 */
    __pyx_t_3 = ((!(__pyx_v_first_statement != 0)) != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1669
 *     if dotted_name == '__future__':
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")             # <<<<<<<<<<<<<<
 *         elif level:
 *             s.error("invalid syntax")
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__90, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1668
 *         s.expect(')')
 *     if dotted_name == '__future__':
 *         if not first_statement:             # <<<<<<<<<<<<<<
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level:
 */
      goto __pyx_L28;
    }

    /* "Cython/Compiler/Parsing.py":1670
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level:             # <<<<<<<<<<<<<<
 *             s.error("invalid syntax")
 *         else:
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_level); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1670, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1671
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level:
 *             s.error("invalid syntax")             # <<<<<<<<<<<<<<
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__91, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1670
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level:             # <<<<<<<<<<<<<<
 *             s.error("invalid syntax")
 *         else:
 */
      goto __pyx_L28;
    }

    /* "Cython/Compiler/Parsing.py":1673
 *             s.error("invalid syntax")
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:             # <<<<<<<<<<<<<<
 *                 if name == "braces":
 *                     s.error("not a chance", name_pos)
 */
    /*else*/ {
      __pyx_t_1 = __pyx_v_imported_names; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1673, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1673, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
        if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
          PyObject* sequence = __pyx_t_7;
          #if !CYTHON_COMPILING_IN_PYPY
          Py_ssize_t size = Py_SIZE(sequence);
          #else
          Py_ssize_t size = PySequence_Size(sequence);
          #endif
          if (unlikely(size != 4)) {
            if (size > 4) __Pyx_RaiseTooManyValuesError(4);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 1673, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
            __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
            __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); 
          } else {
            __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
            __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
            __pyx_t_9 = PyList_GET_ITEM(sequence, 3); 
          }
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_9);
          #else
          {
            Py_ssize_t i;
            PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_5,&__pyx_t_6,&__pyx_t_9};
            for (i=0; i < 4; i++) {
              PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1673, __pyx_L1_error)
              __Pyx_GOTREF(item);
              *(temps[i]) = item;
            }
          }
          #endif
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else {
          Py_ssize_t index = -1;
          PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_5,&__pyx_t_6,&__pyx_t_9};
          __pyx_t_13 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1673, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_13)->tp_iternext;
          for (index=0; index < 4; index++) {
            PyObject* item = __pyx_t_10(__pyx_t_13); if (unlikely(!item)) goto __pyx_L31_unpacking_failed;
            __Pyx_GOTREF(item);
            *(temps[index]) = item;
          }
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_13), 4) < 0) __PYX_ERR(0, 1673, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          goto __pyx_L32_unpacking_done;
          __pyx_L31_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 1673, __pyx_L1_error)
          __pyx_L32_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_name_pos, __pyx_t_8);
        __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
        __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_as_name, __pyx_t_6);
        __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_kind, __pyx_t_9);
        __pyx_t_9 = 0;

        /* "Cython/Compiler/Parsing.py":1674
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 *                 if name == "braces":             # <<<<<<<<<<<<<<
 *                     s.error("not a chance", name_pos)
 *                     break
 */
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_braces, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1674, __pyx_L1_error)
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":1675
 *             for (name_pos, name, as_name, kind) in imported_names:
 *                 if name == "braces":
 *                     s.error("not a chance", name_pos)             # <<<<<<<<<<<<<<
 *                     break
 *                 try:
 */
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_6 = NULL;
          __pyx_t_14 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
            if (likely(__pyx_t_6)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_9, function);
              __pyx_t_14 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_9)) {
            PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_kp_u_not_a_chance, __pyx_v_name_pos};
            __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1675, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
            PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_kp_u_not_a_chance, __pyx_v_name_pos};
            __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1675, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1675, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_6) {
              __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_u_not_a_chance);
            __Pyx_GIVEREF(__pyx_kp_u_not_a_chance);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_14, __pyx_kp_u_not_a_chance);
            __Pyx_INCREF(__pyx_v_name_pos);
            __Pyx_GIVEREF(__pyx_v_name_pos);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_14, __pyx_v_name_pos);
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1675, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "Cython/Compiler/Parsing.py":1676
 *                 if name == "braces":
 *                     s.error("not a chance", name_pos)
 *                     break             # <<<<<<<<<<<<<<
 *                 try:
 *                     directive = getattr(Future, name)
 */
          goto __pyx_L30_break;

          /* "Cython/Compiler/Parsing.py":1674
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 *                 if name == "braces":             # <<<<<<<<<<<<<<
 *                     s.error("not a chance", name_pos)
 *                     break
 */
        }

        /* "Cython/Compiler/Parsing.py":1677
 *                     s.error("not a chance", name_pos)
 *                     break
 *                 try:             # <<<<<<<<<<<<<<
 *                     directive = getattr(Future, name)
 *                 except AttributeError:
 */
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          /*try:*/ {

            /* "Cython/Compiler/Parsing.py":1678
 *                     break
 *                 try:
 *                     directive = getattr(Future, name)             # <<<<<<<<<<<<<<
 *                 except AttributeError:
 *                     s.error("future feature %s is not defined" % name, name_pos)
 */
            __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_Future;
            __Pyx_INCREF(__pyx_t_7);
            __pyx_t_9 = __Pyx_GetAttr(__pyx_t_7, __pyx_v_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L34_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF_SET(__pyx_v_directive, __pyx_t_9);
            __pyx_t_9 = 0;

            /* "Cython/Compiler/Parsing.py":1677
 *                     s.error("not a chance", name_pos)
 *                     break
 *                 try:             # <<<<<<<<<<<<<<
 *                     directive = getattr(Future, name)
 *                 except AttributeError:
 */
          }
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          goto __pyx_L41_try_end;
          __pyx_L34_error:;
          __Pyx_PyThreadState_assign
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "Cython/Compiler/Parsing.py":1679
 *                 try:
 *                     directive = getattr(Future, name)
 *                 except AttributeError:             # <<<<<<<<<<<<<<
 *                     s.error("future feature %s is not defined" % name, name_pos)
 *                     break
 */
          __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
          if (__pyx_t_14) {
            __Pyx_AddTraceback("Cython.Compiler.Parsing.p_from_import_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(0, 1679, __pyx_L36_except_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_GOTREF(__pyx_t_5);

            /* "Cython/Compiler/Parsing.py":1680
 *                     directive = getattr(Future, name)
 *                 except AttributeError:
 *                     s.error("future feature %s is not defined" % name, name_pos)             # <<<<<<<<<<<<<<
 *                     break
 *                 s.context.future_directives.add(directive)
 */
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1680, __pyx_L36_except_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_13 = PyUnicode_Format(__pyx_kp_u_future_feature_s_is_not_defined, __pyx_v_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1680, __pyx_L36_except_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_18 = NULL;
            __pyx_t_14 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
              __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_8);
              if (likely(__pyx_t_18)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                __Pyx_INCREF(__pyx_t_18);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_8, function);
                __pyx_t_14 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_8)) {
              PyObject *__pyx_temp[3] = {__pyx_t_18, __pyx_t_13, __pyx_v_name_pos};
              __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1680, __pyx_L36_except_error)
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
              PyObject *__pyx_temp[3] = {__pyx_t_18, __pyx_t_13, __pyx_v_name_pos};
              __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1680, __pyx_L36_except_error)
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            } else
            #endif
            {
              __pyx_t_19 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1680, __pyx_L36_except_error)
              __Pyx_GOTREF(__pyx_t_19);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_13);
              PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_14, __pyx_t_13);
              __Pyx_INCREF(__pyx_v_name_pos);
              __Pyx_GIVEREF(__pyx_v_name_pos);
              PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_14, __pyx_v_name_pos);
              __pyx_t_13 = 0;
              __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_19, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1680, __pyx_L36_except_error)
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

            /* "Cython/Compiler/Parsing.py":1681
 *                 except AttributeError:
 *                     s.error("future feature %s is not defined" % name, name_pos)
 *                     break             # <<<<<<<<<<<<<<
 *                 s.context.future_directives.add(directive)
 *         return Nodes.PassStatNode(pos)
 */
            goto __pyx_L42_except_break;
            __pyx_L42_except_break:;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            goto __pyx_L39_try_break;
          }
          goto __pyx_L36_except_error;
          __pyx_L36_except_error:;

          /* "Cython/Compiler/Parsing.py":1677
 *                     s.error("not a chance", name_pos)
 *                     break
 *                 try:             # <<<<<<<<<<<<<<
 *                     directive = getattr(Future, name)
 *                 except AttributeError:
 */
          __Pyx_PyThreadState_assign
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
          goto __pyx_L1_error;
          __pyx_L39_try_break:;
          __Pyx_PyThreadState_assign
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
          goto __pyx_L30_break;
          __pyx_L41_try_end:;
        }

        /* "Cython/Compiler/Parsing.py":1682
 *                     s.error("future feature %s is not defined" % name, name_pos)
 *                     break
 *                 s.context.future_directives.add(directive)             # <<<<<<<<<<<<<<
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1682, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_add); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1682, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
          }
        }
        if (!__pyx_t_7) {
          __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_directive); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_9)) {
            PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_directive};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_GOTREF(__pyx_t_5);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
            PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_directive};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_GOTREF(__pyx_t_5);
          } else
          #endif
          {
            __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1682, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
            __Pyx_INCREF(__pyx_v_directive);
            __Pyx_GIVEREF(__pyx_v_directive);
            PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_directive);
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":1673
 *             s.error("invalid syntax")
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:             # <<<<<<<<<<<<<<
 *                 if name == "braces":
 *                     s.error("not a chance", name_pos)
 */
      }
      __pyx_L30_break:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L28:;

    /* "Cython/Compiler/Parsing.py":1683
 *                     break
 *                 s.context.future_directives.add(directive)
 *         return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (!__pyx_t_9) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1683, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1683, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1683, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1683, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_pos);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1683, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1667
 *     if is_parenthesized:
 *         s.expect(')')
 *     if dotted_name == '__future__':             # <<<<<<<<<<<<<<
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")
 */
  }

  /* "Cython/Compiler/Parsing.py":1684
 *                 s.context.future_directives.add(directive)
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':             # <<<<<<<<<<<<<<
 *         return Nodes.FromCImportStatNode(
 *             pos, module_name=dotted_name,
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1684, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1685
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(             # <<<<<<<<<<<<<<
 *             pos, module_name=dotted_name,
 *             relative_level=level,
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_FromCImportStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1685, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":1686
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(
 *             pos, module_name=dotted_name,             # <<<<<<<<<<<<<<
 *             relative_level=level,
 *             imported_names=imported_names)
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1685, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_module_name, __pyx_v_dotted_name) < 0) __PYX_ERR(0, 1686, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1687
 *         return Nodes.FromCImportStatNode(
 *             pos, module_name=dotted_name,
 *             relative_level=level,             # <<<<<<<<<<<<<<
 *             imported_names=imported_names)
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_relative_level, __pyx_v_level) < 0) __PYX_ERR(0, 1686, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1688
 *             pos, module_name=dotted_name,
 *             relative_level=level,
 *             imported_names=imported_names)             # <<<<<<<<<<<<<<
 *     else:
 *         imported_name_strings = []
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_imported_names, __pyx_v_imported_names) < 0) __PYX_ERR(0, 1686, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1685
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(             # <<<<<<<<<<<<<<
 *             pos, module_name=dotted_name,
 *             relative_level=level,
 */
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1685, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1684
 *                 s.context.future_directives.add(directive)
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':             # <<<<<<<<<<<<<<
 *         return Nodes.FromCImportStatNode(
 *             pos, module_name=dotted_name,
 */
  }

  /* "Cython/Compiler/Parsing.py":1690
 *             imported_names=imported_names)
 *     else:
 *         imported_name_strings = []             # <<<<<<<<<<<<<<
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:
 */
  /*else*/ {
    __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1690, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_v_imported_name_strings = ((PyObject*)__pyx_t_9);
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1691
 *     else:
 *         imported_name_strings = []
 *         items = []             # <<<<<<<<<<<<<<
 *         for (name_pos, name, as_name, kind) in imported_names:
 *             imported_name_strings.append(
 */
    __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1691, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_v_items = ((PyObject*)__pyx_t_9);
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1692
 *         imported_name_strings = []
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:             # <<<<<<<<<<<<<<
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value=name))
 */
    __pyx_t_9 = __pyx_v_imported_names; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
    for (;;) {
      if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1692, __pyx_L1_error)
      #else
      __pyx_t_6 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1692, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      #endif
      if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
        PyObject* sequence = __pyx_t_6;
        #if !CYTHON_COMPILING_IN_PYPY
        Py_ssize_t size = Py_SIZE(sequence);
        #else
        Py_ssize_t size = PySequence_Size(sequence);
        #endif
        if (unlikely(size != 4)) {
          if (size > 4) __Pyx_RaiseTooManyValuesError(4);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 1692, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 3); 
        } else {
          __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
          __pyx_t_7 = PyList_GET_ITEM(sequence, 2); 
          __pyx_t_8 = PyList_GET_ITEM(sequence, 3); 
        }
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        #else
        {
          Py_ssize_t i;
          PyObject** temps[4] = {&__pyx_t_5,&__pyx_t_1,&__pyx_t_7,&__pyx_t_8};
          for (i=0; i < 4; i++) {
            PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1692, __pyx_L1_error)
            __Pyx_GOTREF(item);
            *(temps[i]) = item;
          }
        }
        #endif
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        Py_ssize_t index = -1;
        PyObject** temps[4] = {&__pyx_t_5,&__pyx_t_1,&__pyx_t_7,&__pyx_t_8};
        __pyx_t_19 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1692, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_19)->tp_iternext;
        for (index=0; index < 4; index++) {
          PyObject* item = __pyx_t_10(__pyx_t_19); if (unlikely(!item)) goto __pyx_L46_unpacking_failed;
          __Pyx_GOTREF(item);
          *(temps[index]) = item;
        }
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_19), 4) < 0) __PYX_ERR(0, 1692, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        goto __pyx_L47_unpacking_done;
        __pyx_L46_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 1692, __pyx_L1_error)
        __pyx_L47_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_name_pos, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1);
      __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_as_name, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_DECREF_SET(__pyx_v_kind, __pyx_t_8);
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1694
 *         for (name_pos, name, as_name, kind) in imported_names:
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value=name))             # <<<<<<<<<<<<<<
 *             items.append(
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_name_pos);
      __Pyx_GIVEREF(__pyx_v_name_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name_pos);
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_value, __pyx_v_name) < 0) __PYX_ERR(0, 1694, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1694, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1693
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:
 *             imported_name_strings.append(             # <<<<<<<<<<<<<<
 *                 ExprNodes.IdentifierStringNode(name_pos, value=name))
 *             items.append(
 */
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_imported_name_strings, __pyx_t_1); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1693, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1696
 *                 ExprNodes.IdentifierStringNode(name_pos, value=name))
 *             items.append(
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))             # <<<<<<<<<<<<<<
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args=imported_name_strings)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_name_pos);
      __Pyx_GIVEREF(__pyx_v_name_pos);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_name_pos);
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_as_name); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1696, __pyx_L1_error)
      if (!__pyx_t_3) {
      } else {
        __Pyx_INCREF(__pyx_v_as_name);
        __pyx_t_6 = __pyx_v_as_name;
        goto __pyx_L48_bool_binop_done;
      }
      __Pyx_INCREF(__pyx_v_name);
      __pyx_t_6 = __pyx_v_name;
      __pyx_L48_bool_binop_done:;
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_name, __pyx_t_6) < 0) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1695
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value=name))
 *             items.append(             # <<<<<<<<<<<<<<
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 *         import_list = ExprNodes.ListNode(
 */
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_8); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1695, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1692
 *         imported_name_strings = []
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:             # <<<<<<<<<<<<<<
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value=name))
 */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1697
 *             items.append(
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 *         import_list = ExprNodes.ListNode(             # <<<<<<<<<<<<<<
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ListNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "Cython/Compiler/Parsing.py":1698
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args=imported_name_strings)             # <<<<<<<<<<<<<<
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 */
    __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_imported_names, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1697
 *             items.append(
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 *         import_list = ExprNodes.ListNode(             # <<<<<<<<<<<<<<
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1698
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args=imported_name_strings)             # <<<<<<<<<<<<<<
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 */
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_args, __pyx_v_imported_name_strings) < 0) __PYX_ERR(0, 1698, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1697
 *             items.append(
 *                 (name, ExprNodes.NameNode(name_pos, name=as_name or name)))
 *         import_list = ExprNodes.ListNode(             # <<<<<<<<<<<<<<
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_import_list = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1699
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,             # <<<<<<<<<<<<<<
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_FromImportStatNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":1700
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,             # <<<<<<<<<<<<<<
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 *                 level = level,
 */
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ImportNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_dotted_name_pos);
    __Pyx_GIVEREF(__pyx_v_dotted_name_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_dotted_name_pos);

    /* "Cython/Compiler/Parsing.py":1701
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),             # <<<<<<<<<<<<<<
 *                 level = level,
 *                 name_list = import_list),
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_pos);
    __pyx_t_18 = PyDict_New(); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (PyDict_SetItem(__pyx_t_18, __pyx_n_s_value, __pyx_v_dotted_name) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)
    __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_13, __pyx_t_18); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_module_name, __pyx_t_20) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;

    /* "Cython/Compiler/Parsing.py":1702
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 *                 level = level,             # <<<<<<<<<<<<<<
 *                 name_list = import_list),
 *             items = items)
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_level, __pyx_v_level) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1703
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 *                 level = level,
 *                 name_list = import_list),             # <<<<<<<<<<<<<<
 *             items = items)
 * 
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name_list, __pyx_v_import_list) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1700
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,             # <<<<<<<<<<<<<<
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 *                 level = level,
 */
    __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_module, __pyx_t_20) < 0) __PYX_ERR(0, 1700, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;

    /* "Cython/Compiler/Parsing.py":1704
 *                 level = level,
 *                 name_list = import_list),
 *             items = items)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_items, __pyx_v_items) < 0) __PYX_ERR(0, 1700, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1699
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args=imported_name_strings)
 *         return Nodes.FromImportStatNode(pos,             # <<<<<<<<<<<<<<
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 */
    __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_r = __pyx_t_20;
    __pyx_t_20 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1626
 * 
 * 
 * def p_from_import_statement(s, first_statement = 0):             # <<<<<<<<<<<<<<
 *     # s.sy == 'from'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_from_import_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_level);
  __Pyx_XDECREF(__pyx_v_dotted_name_pos);
  __Pyx_XDECREF(__pyx_v_dotted_name);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_is_cimport);
  __Pyx_XDECREF(__pyx_v_imported_names);
  __Pyx_XDECREF(__pyx_v_name_pos);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_as_name);
  __Pyx_XDECREF(__pyx_v_directive);
  __Pyx_XDECREF(__pyx_v_imported_name_strings);
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XDECREF(__pyx_v_import_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1709
 * imported_name_kinds = cython.declare(set, set(['class', 'struct', 'union']))
 * 
 * def p_imported_name(s, is_cimport):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     kind = None
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_imported_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, int __pyx_v_is_cimport) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_as_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  __Pyx_RefNannySetupContext("p_imported_name", 0);

  /* "Cython/Compiler/Parsing.py":1710
 * 
 * def p_imported_name(s, is_cimport):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     kind = None
 *     if is_cimport and s.systring in imported_name_kinds:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1711
 * def p_imported_name(s, is_cimport):
 *     pos = s.position()
 *     kind = None             # <<<<<<<<<<<<<<
 *     if is_cimport and s.systring in imported_name_kinds:
 *         kind = s.systring
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_kind = Py_None;

  /* "Cython/Compiler/Parsing.py":1712
 *     pos = s.position()
 *     kind = None
 *     if is_cimport and s.systring in imported_name_kinds:             # <<<<<<<<<<<<<<
 *         kind = s.systring
 *         s.next()
 */
  __pyx_t_3 = (__pyx_v_is_cimport != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_imported_name_kinds, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1712, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1713
 *     kind = None
 *     if is_cimport and s.systring in imported_name_kinds:
 *         kind = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *     name = p_ident(s)
 */
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_kind, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1714
 *     if is_cimport and s.systring in imported_name_kinds:
 *         kind = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     as_name = p_as_name(s)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1712
 *     pos = s.position()
 *     kind = None
 *     if is_cimport and s.systring in imported_name_kinds:             # <<<<<<<<<<<<<<
 *         kind = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":1715
 *         kind = s.systring
 *         s.next()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     as_name = p_as_name(s)
 *     return (pos, name, as_name, kind)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1716
 *         s.next()
 *     name = p_ident(s)
 *     as_name = p_as_name(s)             # <<<<<<<<<<<<<<
 *     return (pos, name, as_name, kind)
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_as_name(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_as_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1717
 *     name = p_ident(s)
 *     as_name = p_as_name(s)
 *     return (pos, name, as_name, kind)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name);
  __Pyx_INCREF(__pyx_v_as_name);
  __Pyx_GIVEREF(__pyx_v_as_name);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_as_name);
  __Pyx_INCREF(__pyx_v_kind);
  __Pyx_GIVEREF(__pyx_v_kind);
  PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_kind);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1709
 * imported_name_kinds = cython.declare(set, set(['class', 'struct', 'union']))
 * 
 * def p_imported_name(s, is_cimport):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     kind = None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_imported_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_as_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1720
 * 
 * 
 * def p_dotted_name(s, as_allowed):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     target_name = p_ident(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, int __pyx_v_as_allowed) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_target_name = NULL;
  PyObject *__pyx_v_as_name = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_dotted_name", 0);

  /* "Cython/Compiler/Parsing.py":1721
 * 
 * def p_dotted_name(s, as_allowed):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     target_name = p_ident(s)
 *     as_name = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1722
 * def p_dotted_name(s, as_allowed):
 *     pos = s.position()
 *     target_name = p_ident(s)             # <<<<<<<<<<<<<<
 *     as_name = None
 *     names = [target_name]
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_target_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1723
 *     pos = s.position()
 *     target_name = p_ident(s)
 *     as_name = None             # <<<<<<<<<<<<<<
 *     names = [target_name]
 *     while s.sy == '.':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_as_name = Py_None;

  /* "Cython/Compiler/Parsing.py":1724
 *     target_name = p_ident(s)
 *     as_name = None
 *     names = [target_name]             # <<<<<<<<<<<<<<
 *     while s.sy == '.':
 *         s.next()
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_target_name);
  __Pyx_GIVEREF(__pyx_v_target_name);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_target_name);
  __pyx_v_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1725
 *     as_name = None
 *     names = [target_name]
 *     while s.sy == '.':             # <<<<<<<<<<<<<<
 *         s.next()
 *         names.append(p_ident(s))
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1725, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":1726
 *     names = [target_name]
 *     while s.sy == '.':
 *         s.next()             # <<<<<<<<<<<<<<
 *         names.append(p_ident(s))
 *     if as_allowed:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1727
 *     while s.sy == '.':
 *         s.next()
 *         names.append(p_ident(s))             # <<<<<<<<<<<<<<
 *     if as_allowed:
 *         as_name = p_as_name(s)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1727, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 1727, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1728
 *         s.next()
 *         names.append(p_ident(s))
 *     if as_allowed:             # <<<<<<<<<<<<<<
 *         as_name = p_as_name(s)
 *     return (pos, target_name, s.context.intern_ustring(u'.'.join(names)), as_name)
 */
  __pyx_t_2 = (__pyx_v_as_allowed != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1729
 *         names.append(p_ident(s))
 *     if as_allowed:
 *         as_name = p_as_name(s)             # <<<<<<<<<<<<<<
 *     return (pos, target_name, s.context.intern_ustring(u'.'.join(names)), as_name)
 * 
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_as_name(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_as_name, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1728
 *         s.next()
 *         names.append(p_ident(s))
 *     if as_allowed:             # <<<<<<<<<<<<<<
 *         as_name = p_as_name(s)
 *     return (pos, target_name, s.context.intern_ustring(u'.'.join(names)), as_name)
 */
  }

  /* "Cython/Compiler/Parsing.py":1730
 *     if as_allowed:
 *         as_name = p_as_name(s)
 *     return (pos, target_name, s.context.intern_ustring(u'.'.join(names)), as_name)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyUnicode_Join(__pyx_kp_u__37, __pyx_v_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  if (!__pyx_t_6) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1730, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL;
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_INCREF(__pyx_v_target_name);
  __Pyx_GIVEREF(__pyx_v_target_name);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_target_name);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_as_name);
  __Pyx_GIVEREF(__pyx_v_as_name);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_as_name);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1720
 * 
 * 
 * def p_dotted_name(s, as_allowed):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     target_name = p_ident(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_dotted_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_target_name);
  __Pyx_XDECREF(__pyx_v_as_name);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1733
 * 
 * 
 * def p_as_name(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_as_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_as_name", 0);

  /* "Cython/Compiler/Parsing.py":1734
 * 
 * def p_as_name(s):
 *     if s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_ident(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1735
 * def p_as_name(s):
 *     if s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return p_ident(s)
 *     else:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1736
 *     if s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()
 *         return p_ident(s)             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1734
 * 
 * def p_as_name(s):
 *     if s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_ident(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":1738
 *         return p_ident(s)
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1733
 * 
 * 
 * def p_as_name(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_as_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1741
 * 
 * 
 * def p_assert_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'assert'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_assert_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_cond = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_assert_statement", 0);

  /* "Cython/Compiler/Parsing.py":1743
 * def p_assert_statement(s):
 *     # s.sy == 'assert'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     cond = p_test(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1744
 *     # s.sy == 'assert'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     cond = p_test(s)
 *     if s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1745
 *     pos = s.position()
 *     s.next()
 *     cond = p_test(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cond = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1746
 *     s.next()
 *     cond = p_test(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         value = p_test(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1746, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1747
 *     cond = p_test(s)
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         value = p_test(s)
 *     else:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1748
 *     if s.sy == ',':
 *         s.next()
 *         value = p_test(s)             # <<<<<<<<<<<<<<
 *     else:
 *         value = None
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1746
 *     s.next()
 *     cond = p_test(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         value = p_test(s)
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1750
 *         value = p_test(s)
 *     else:
 *         value = None             # <<<<<<<<<<<<<<
 *     return Nodes.AssertStatNode(pos, cond = cond, value = value)
 * 
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_value = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1751
 *     else:
 *         value = None
 *     return Nodes.AssertStatNode(pos, cond = cond, value = value)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_AssertStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_cond, __pyx_v_cond) < 0) __PYX_ERR(0, 1751, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 1751, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1741
 * 
 * 
 * def p_assert_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'assert'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_assert_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_cond);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1756
 * statement_terminators = cython.declare(set, set([';', 'NEWLINE', 'EOF']))
 * 
 * def p_if_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'if'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_if_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_if_clauses = NULL;
  PyObject *__pyx_v_else_clause = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_if_statement", 0);

  /* "Cython/Compiler/Parsing.py":1758
 * def p_if_statement(s):
 *     # s.sy == 'if'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     if_clauses = [p_if_clause(s)]
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1759
 *     # s.sy == 'if'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     if_clauses = [p_if_clause(s)]
 *     while s.sy == 'elif':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1760
 *     pos = s.position()
 *     s.next()
 *     if_clauses = [p_if_clause(s)]             # <<<<<<<<<<<<<<
 *     while s.sy == 'elif':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_if_clause(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_if_clauses = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1761
 *     s.next()
 *     if_clauses = [p_if_clause(s)]
 *     while s.sy == 'elif':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if_clauses.append(p_if_clause(s))
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_elif, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1761, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1762
 *     if_clauses = [p_if_clause(s)]
 *     while s.sy == 'elif':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if_clauses.append(p_if_clause(s))
 *     else_clause = p_else_clause(s)
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1763
 *     while s.sy == 'elif':
 *         s.next()
 *         if_clauses.append(p_if_clause(s))             # <<<<<<<<<<<<<<
 *     else_clause = p_else_clause(s)
 *     return Nodes.IfStatNode(pos,
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_if_clause(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1763, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_if_clauses, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1763, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1764
 *         s.next()
 *         if_clauses.append(p_if_clause(s))
 *     else_clause = p_else_clause(s)             # <<<<<<<<<<<<<<
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = if_clauses, else_clause = else_clause)
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_else_clause(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_else_clause = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1765
 *         if_clauses.append(p_if_clause(s))
 *     else_clause = p_else_clause(s)
 *     return Nodes.IfStatNode(pos,             # <<<<<<<<<<<<<<
 *         if_clauses = if_clauses, else_clause = else_clause)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_IfStatNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":1766
 *     else_clause = p_else_clause(s)
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = if_clauses, else_clause = else_clause)             # <<<<<<<<<<<<<<
 * 
 * def p_if_clause(s):
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_if_clauses, __pyx_v_if_clauses) < 0) __PYX_ERR(0, 1766, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) __PYX_ERR(0, 1766, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1765
 *         if_clauses.append(p_if_clause(s))
 *     else_clause = p_else_clause(s)
 *     return Nodes.IfStatNode(pos,             # <<<<<<<<<<<<<<
 *         if_clauses = if_clauses, else_clause = else_clause)
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1756
 * statement_terminators = cython.declare(set, set([';', 'NEWLINE', 'EOF']))
 * 
 * def p_if_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'if'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_if_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_if_clauses);
  __Pyx_XDECREF(__pyx_v_else_clause);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1768
 *         if_clauses = if_clauses, else_clause = else_clause)
 * 
 * def p_if_clause(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     test = p_test(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_if_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_test = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_if_clause", 0);

  /* "Cython/Compiler/Parsing.py":1769
 * 
 * def p_if_clause(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     test = p_test(s)
 *     body = p_suite(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1770
 * def p_if_clause(s):
 *     pos = s.position()
 *     test = p_test(s)             # <<<<<<<<<<<<<<
 *     body = p_suite(s)
 *     return Nodes.IfClauseNode(pos,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_test = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1771
 *     pos = s.position()
 *     test = p_test(s)
 *     body = p_suite(s)             # <<<<<<<<<<<<<<
 *     return Nodes.IfClauseNode(pos,
 *         condition = test, body = body)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1772
 *     test = p_test(s)
 *     body = p_suite(s)
 *     return Nodes.IfClauseNode(pos,             # <<<<<<<<<<<<<<
 *         condition = test, body = body)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_IfClauseNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":1773
 *     body = p_suite(s)
 *     return Nodes.IfClauseNode(pos,
 *         condition = test, body = body)             # <<<<<<<<<<<<<<
 * 
 * def p_else_clause(s):
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_condition, __pyx_v_test) < 0) __PYX_ERR(0, 1773, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1773, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1772
 *     test = p_test(s)
 *     body = p_suite(s)
 *     return Nodes.IfClauseNode(pos,             # <<<<<<<<<<<<<<
 *         condition = test, body = body)
 * 
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1768
 *         if_clauses = if_clauses, else_clause = else_clause)
 * 
 * def p_if_clause(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     test = p_test(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_if_clause", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_test);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1775
 *         condition = test, body = body)
 * 
 * def p_else_clause(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'else':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_else_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_else_clause", 0);

  /* "Cython/Compiler/Parsing.py":1776
 * 
 * def p_else_clause(s):
 *     if s.sy == 'else':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_suite(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_else, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1776, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1777
 * def p_else_clause(s):
 *     if s.sy == 'else':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return p_suite(s)
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1778
 *     if s.sy == 'else':
 *         s.next()
 *         return p_suite(s)             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1778, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1776
 * 
 * def p_else_clause(s):
 *     if s.sy == 'else':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_suite(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":1780
 *         return p_suite(s)
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * def p_while_statement(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1775
 *         condition = test, body = body)
 * 
 * def p_else_clause(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'else':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_else_clause", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1782
 *         return None
 * 
 * def p_while_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'while'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_while_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_test = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_v_else_clause = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_while_statement", 0);

  /* "Cython/Compiler/Parsing.py":1784
 * def p_while_statement(s):
 *     # s.sy == 'while'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     test = p_test(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1785
 *     # s.sy == 'while'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     test = p_test(s)
 *     body = p_suite(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1786
 *     pos = s.position()
 *     s.next()
 *     test = p_test(s)             # <<<<<<<<<<<<<<
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_test = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1787
 *     s.next()
 *     test = p_test(s)
 *     body = p_suite(s)             # <<<<<<<<<<<<<<
 *     else_clause = p_else_clause(s)
 *     return Nodes.WhileStatNode(pos,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1788
 *     test = p_test(s)
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)             # <<<<<<<<<<<<<<
 *     return Nodes.WhileStatNode(pos,
 *         condition = test, body = body,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_else_clause(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_else_clause = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1789
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 *     return Nodes.WhileStatNode(pos,             # <<<<<<<<<<<<<<
 *         condition = test, body = body,
 *         else_clause = else_clause)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_WhileStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":1790
 *     else_clause = p_else_clause(s)
 *     return Nodes.WhileStatNode(pos,
 *         condition = test, body = body,             # <<<<<<<<<<<<<<
 *         else_clause = else_clause)
 * 
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_condition, __pyx_v_test) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1791
 *     return Nodes.WhileStatNode(pos,
 *         condition = test, body = body,
 *         else_clause = else_clause)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1789
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 *     return Nodes.WhileStatNode(pos,             # <<<<<<<<<<<<<<
 *         condition = test, body = body,
 *         else_clause = else_clause)
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1782
 *         return None
 * 
 * def p_while_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'while'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_while_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_test);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XDECREF(__pyx_v_else_clause);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1794
 * 
 * 
 * def p_for_statement(s, is_async=False):             # <<<<<<<<<<<<<<
 *     # s.sy == 'for'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_statement *__pyx_optional_args) {
  int __pyx_v_is_async = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kw = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_v_else_clause = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_for_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_is_async = __pyx_optional_args->is_async;
    }
  }

  /* "Cython/Compiler/Parsing.py":1796
 * def p_for_statement(s, is_async=False):
 *     # s.sy == 'for'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=True, is_async=is_async)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1796, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1797
 *     # s.sy == 'for'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     kw = p_for_bounds(s, allow_testlist=True, is_async=is_async)
 *     body = p_suite(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1798
 *     pos = s.position()
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=True, is_async=is_async)             # <<<<<<<<<<<<<<
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 */
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.allow_testlist = 1;
  __pyx_t_2.is_async = __pyx_v_is_async;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_bounds(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_kw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1799
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=True, is_async=is_async)
 *     body = p_suite(s)             # <<<<<<<<<<<<<<
 *     else_clause = p_else_clause(s)
 *     kw.update(body=body, else_clause=else_clause, is_async=is_async)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1800
 *     kw = p_for_bounds(s, allow_testlist=True, is_async=is_async)
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)             # <<<<<<<<<<<<<<
 *     kw.update(body=body, else_clause=else_clause, is_async=is_async)
 *     return Nodes.ForStatNode(pos, **kw)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_else_clause(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_else_clause = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1801
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 *     kw.update(body=body, else_clause=else_clause, is_async=is_async)             # <<<<<<<<<<<<<<
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_kw, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1801, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) __PYX_ERR(0, 1801, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_is_async, __pyx_t_4) < 0) __PYX_ERR(0, 1801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":1802
 *     else_clause = p_else_clause(s)
 *     kw.update(body=body, else_clause=else_clause, is_async=is_async)
 *     return Nodes.ForStatNode(pos, **kw)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ForStatNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  if (unlikely(__pyx_v_kw == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
    __PYX_ERR(0, 1802, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_v_kw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1794
 * 
 * 
 * def p_for_statement(s, is_async=False):             # <<<<<<<<<<<<<<
 *     # s.sy == 'for'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_for_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kw);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XDECREF(__pyx_v_else_clause);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1805
 * 
 * 
 * def p_for_bounds(s, allow_testlist=True, is_async=False):             # <<<<<<<<<<<<<<
 *     target = p_for_target(s)
 *     if s.sy == 'in':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_bounds(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds *__pyx_optional_args) {
  int __pyx_v_allow_testlist = ((int)1);
  int __pyx_v_is_async = ((int)0);
  PyObject *__pyx_v_target = NULL;
  PyObject *__pyx_v_iterator = NULL;
  PyObject *__pyx_v_bound1 = NULL;
  PyObject *__pyx_v_rel1 = NULL;
  PyObject *__pyx_v_name2_pos = NULL;
  PyObject *__pyx_v_name2 = NULL;
  PyObject *__pyx_v_rel2_pos = NULL;
  PyObject *__pyx_v_rel2 = NULL;
  PyObject *__pyx_v_bound2 = NULL;
  PyObject *__pyx_v_step = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("p_for_bounds", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_allow_testlist = __pyx_optional_args->allow_testlist;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_is_async = __pyx_optional_args->is_async;
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":1806
 * 
 * def p_for_bounds(s, allow_testlist=True, is_async=False):
 *     target = p_for_target(s)             # <<<<<<<<<<<<<<
 *     if s.sy == 'in':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_target(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1807
 * def p_for_bounds(s, allow_testlist=True, is_async=False):
 *     target = p_for_target(s)
 *     if s.sy == 'in':             # <<<<<<<<<<<<<<
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_in, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1807, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1808
 *     target = p_for_target(s)
 *     if s.sy == 'in':
 *         s.next()             # <<<<<<<<<<<<<<
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)
 *         return dict(target=target, iterator=iterator)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1808, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1809
 *     if s.sy == 'in':
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)             # <<<<<<<<<<<<<<
 *         return dict(target=target, iterator=iterator)
 *     elif not s.in_python_file and not is_async:
 */
    __pyx_t_3.__pyx_n = 2;
    __pyx_t_3.allow_testlist = __pyx_v_allow_testlist;
    __pyx_t_3.is_async = __pyx_v_is_async;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_iterator(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_iterator = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1810
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)
 *         return dict(target=target, iterator=iterator)             # <<<<<<<<<<<<<<
 *     elif not s.in_python_file and not is_async:
 *         if s.sy == 'from':
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1810, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_v_target) < 0) __PYX_ERR(0, 1810, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_iterator, __pyx_v_iterator) < 0) __PYX_ERR(0, 1810, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1807
 * def p_for_bounds(s, allow_testlist=True, is_async=False):
 *     target = p_for_target(s)
 *     if s.sy == 'in':             # <<<<<<<<<<<<<<
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)
 */
  }

  /* "Cython/Compiler/Parsing.py":1811
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)
 *         return dict(target=target, iterator=iterator)
 *     elif not s.in_python_file and not is_async:             # <<<<<<<<<<<<<<
 *         if s.sy == 'from':
 *             s.next()
 */
  __pyx_t_4 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = ((!(__pyx_v_is_async != 0)) != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1812
 *         return dict(target=target, iterator=iterator)
 *     elif not s.in_python_file and not is_async:
 *         if s.sy == 'from':             # <<<<<<<<<<<<<<
 *             s.next()
 *             bound1 = p_bit_expr(s)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1812, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1813
 *     elif not s.in_python_file and not is_async:
 *         if s.sy == 'from':
 *             s.next()             # <<<<<<<<<<<<<<
 *             bound1 = p_bit_expr(s)
 *         else:
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1814
 *         if s.sy == 'from':
 *             s.next()
 *             bound1 = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *         else:
 *             # Support shorter "for a <= x < b" syntax
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1814, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_bound1 = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1812
 *         return dict(target=target, iterator=iterator)
 *     elif not s.in_python_file and not is_async:
 *         if s.sy == 'from':             # <<<<<<<<<<<<<<
 *             s.next()
 *             bound1 = p_bit_expr(s)
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":1817
 *         else:
 *             # Support shorter "for a <= x < b" syntax
 *             bound1, target = target, None             # <<<<<<<<<<<<<<
 *         rel1 = p_for_from_relation(s)
 *         name2_pos = s.position()
 */
    /*else*/ {
      __pyx_t_1 = __pyx_v_target;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_5 = Py_None;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_v_bound1 = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_5);
      __pyx_t_5 = 0;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":1818
 *             # Support shorter "for a <= x < b" syntax
 *             bound1, target = target, None
 *         rel1 = p_for_from_relation(s)             # <<<<<<<<<<<<<<
 *         name2_pos = s.position()
 *         name2 = p_ident(s)
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_rel1 = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1819
 *             bound1, target = target, None
 *         rel1 = p_for_from_relation(s)
 *         name2_pos = s.position()             # <<<<<<<<<<<<<<
 *         name2 = p_ident(s)
 *         rel2_pos = s.position()
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_name2_pos = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1820
 *         rel1 = p_for_from_relation(s)
 *         name2_pos = s.position()
 *         name2 = p_ident(s)             # <<<<<<<<<<<<<<
 *         rel2_pos = s.position()
 *         rel2 = p_for_from_relation(s)
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_name2 = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1821
 *         name2_pos = s.position()
 *         name2 = p_ident(s)
 *         rel2_pos = s.position()             # <<<<<<<<<<<<<<
 *         rel2 = p_for_from_relation(s)
 *         bound2 = p_bit_expr(s)
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_rel2_pos = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1822
 *         name2 = p_ident(s)
 *         rel2_pos = s.position()
 *         rel2 = p_for_from_relation(s)             # <<<<<<<<<<<<<<
 *         bound2 = p_bit_expr(s)
 *         step = p_for_from_step(s)
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_rel2 = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1823
 *         rel2_pos = s.position()
 *         rel2 = p_for_from_relation(s)
 *         bound2 = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *         step = p_for_from_step(s)
 *         if target is None:
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_bound2 = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1824
 *         rel2 = p_for_from_relation(s)
 *         bound2 = p_bit_expr(s)
 *         step = p_for_from_step(s)             # <<<<<<<<<<<<<<
 *         if target is None:
 *             target = ExprNodes.NameNode(name2_pos, name = name2)
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_from_step(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_step = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1825
 *         bound2 = p_bit_expr(s)
 *         step = p_for_from_step(s)
 *         if target is None:             # <<<<<<<<<<<<<<
 *             target = ExprNodes.NameNode(name2_pos, name = name2)
 *         else:
 */
    __pyx_t_2 = (__pyx_v_target == Py_None);
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1826
 *         step = p_for_from_step(s)
 *         if target is None:
 *             target = ExprNodes.NameNode(name2_pos, name = name2)             # <<<<<<<<<<<<<<
 *         else:
 *             if not target.is_name:
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_name2_pos);
      __Pyx_GIVEREF(__pyx_v_name2_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name2_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name2) < 0) __PYX_ERR(0, 1826, __pyx_L1_error)
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1825
 *         bound2 = p_bit_expr(s)
 *         step = p_for_from_step(s)
 *         if target is None:             # <<<<<<<<<<<<<<
 *             target = ExprNodes.NameNode(name2_pos, name = name2)
 *         else:
 */
      goto __pyx_L7;
    }

    /* "Cython/Compiler/Parsing.py":1828
 *             target = ExprNodes.NameNode(name2_pos, name = name2)
 *         else:
 *             if not target.is_name:             # <<<<<<<<<<<<<<
 *                 error(target.pos,
 *                     "Target of for-from statement must be a variable name")
 */
    /*else*/ {
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_is_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1828, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_2 = ((!__pyx_t_4) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1829
 *         else:
 *             if not target.is_name:
 *                 error(target.pos,             # <<<<<<<<<<<<<<
 *                     "Target of for-from statement must be a variable name")
 *             elif name2 != target.name:
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1829, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_kp_u_Target_of_for_from_statement_mus};
          __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1829, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_kp_u_Target_of_for_from_statement_mus};
          __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1829, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1829, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6);
          __Pyx_INCREF(__pyx_kp_u_Target_of_for_from_statement_mus);
          __Pyx_GIVEREF(__pyx_kp_u_Target_of_for_from_statement_mus);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_u_Target_of_for_from_statement_mus);
          __pyx_t_6 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1829, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":1828
 *             target = ExprNodes.NameNode(name2_pos, name = name2)
 *         else:
 *             if not target.is_name:             # <<<<<<<<<<<<<<
 *                 error(target.pos,
 *                     "Target of for-from statement must be a variable name")
 */
        goto __pyx_L8;
      }

      /* "Cython/Compiler/Parsing.py":1831
 *                 error(target.pos,
 *                     "Target of for-from statement must be a variable name")
 *             elif name2 != target.name:             # <<<<<<<<<<<<<<
 *                 error(name2_pos,
 *                     "Variable name in for-from range does not match target")
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1831, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_name2, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1831, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1831, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1832
 *                     "Target of for-from statement must be a variable name")
 *             elif name2 != target.name:
 *                 error(name2_pos,             # <<<<<<<<<<<<<<
 *                     "Variable name in for-from range does not match target")
 *         if rel1[0] != rel2[0]:
 */
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_9 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_name2_pos, __pyx_kp_u_Variable_name_in_for_from_range};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1832, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_name2_pos, __pyx_kp_u_Variable_name_in_for_from_range};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1832, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1832, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_9) {
            __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL;
          }
          __Pyx_INCREF(__pyx_v_name2_pos);
          __Pyx_GIVEREF(__pyx_v_name2_pos);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_name2_pos);
          __Pyx_INCREF(__pyx_kp_u_Variable_name_in_for_from_range);
          __Pyx_GIVEREF(__pyx_kp_u_Variable_name_in_for_from_range);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_kp_u_Variable_name_in_for_from_range);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1832, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1831
 *                 error(target.pos,
 *                     "Target of for-from statement must be a variable name")
 *             elif name2 != target.name:             # <<<<<<<<<<<<<<
 *                 error(name2_pos,
 *                     "Variable name in for-from range does not match target")
 */
      }
      __pyx_L8:;
    }
    __pyx_L7:;

    /* "Cython/Compiler/Parsing.py":1834
 *                 error(name2_pos,
 *                     "Variable name in for-from range does not match target")
 *         if rel1[0] != rel2[0]:             # <<<<<<<<<<<<<<
 *             error(rel2_pos,
 *                 "Relation directions in for-from do not match")
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_rel1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_rel2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1834, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1834, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1835
 *                     "Variable name in for-from range does not match target")
 *         if rel1[0] != rel2[0]:
 *             error(rel2_pos,             # <<<<<<<<<<<<<<
 *                 "Relation directions in for-from do not match")
 *         return dict(target = target,
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_1 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_rel2_pos, __pyx_kp_u_Relation_directions_in_for_from};
        __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1835, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_rel2_pos, __pyx_kp_u_Relation_directions_in_for_from};
        __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1835, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else
      #endif
      {
        __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (__pyx_t_1) {
          __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __pyx_t_1 = NULL;
        }
        __Pyx_INCREF(__pyx_v_rel2_pos);
        __Pyx_GIVEREF(__pyx_v_rel2_pos);
        PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_rel2_pos);
        __Pyx_INCREF(__pyx_kp_u_Relation_directions_in_for_from);
        __Pyx_GIVEREF(__pyx_kp_u_Relation_directions_in_for_from);
        PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_u_Relation_directions_in_for_from);
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1834
 *                 error(name2_pos,
 *                     "Variable name in for-from range does not match target")
 *         if rel1[0] != rel2[0]:             # <<<<<<<<<<<<<<
 *             error(rel2_pos,
 *                 "Relation directions in for-from do not match")
 */
    }

    /* "Cython/Compiler/Parsing.py":1837
 *             error(rel2_pos,
 *                 "Relation directions in for-from do not match")
 *         return dict(target = target,             # <<<<<<<<<<<<<<
 *                     bound1 = bound1,
 *                     relation1 = rel1,
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1837, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_target, __pyx_v_target) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1838
 *                 "Relation directions in for-from do not match")
 *         return dict(target = target,
 *                     bound1 = bound1,             # <<<<<<<<<<<<<<
 *                     relation1 = rel1,
 *                     relation2 = rel2,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_bound1, __pyx_v_bound1) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1839
 *         return dict(target = target,
 *                     bound1 = bound1,
 *                     relation1 = rel1,             # <<<<<<<<<<<<<<
 *                     relation2 = rel2,
 *                     bound2 = bound2,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_relation1, __pyx_v_rel1) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1840
 *                     bound1 = bound1,
 *                     relation1 = rel1,
 *                     relation2 = rel2,             # <<<<<<<<<<<<<<
 *                     bound2 = bound2,
 *                     step = step,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_relation2, __pyx_v_rel2) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1841
 *                     relation1 = rel1,
 *                     relation2 = rel2,
 *                     bound2 = bound2,             # <<<<<<<<<<<<<<
 *                     step = step,
 *                     )
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_bound2, __pyx_v_bound2) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1842
 *                     relation2 = rel2,
 *                     bound2 = bound2,
 *                     step = step,             # <<<<<<<<<<<<<<
 *                     )
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_step, __pyx_v_step) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1811
 *         iterator = p_for_iterator(s, allow_testlist, is_async=is_async)
 *         return dict(target=target, iterator=iterator)
 *     elif not s.in_python_file and not is_async:             # <<<<<<<<<<<<<<
 *         if s.sy == 'from':
 *             s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":1845
 *                     )
 *     else:
 *         s.expect('in')             # <<<<<<<<<<<<<<
 *         return {}
 * 
 */
  /*else*/ {
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_in, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 1845, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1846
 *     else:
 *         s.expect('in')
 *         return {}             # <<<<<<<<<<<<<<
 * 
 * def p_for_from_relation(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = ((PyObject*)__pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1805
 * 
 * 
 * def p_for_bounds(s, allow_testlist=True, is_async=False):             # <<<<<<<<<<<<<<
 *     target = p_for_target(s)
 *     if s.sy == 'in':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_for_bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_target);
  __Pyx_XDECREF(__pyx_v_iterator);
  __Pyx_XDECREF(__pyx_v_bound1);
  __Pyx_XDECREF(__pyx_v_rel1);
  __Pyx_XDECREF(__pyx_v_name2_pos);
  __Pyx_XDECREF(__pyx_v_name2);
  __Pyx_XDECREF(__pyx_v_rel2_pos);
  __Pyx_XDECREF(__pyx_v_rel2);
  __Pyx_XDECREF(__pyx_v_bound2);
  __Pyx_XDECREF(__pyx_v_step);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1848
 *         return {}
 * 
 * def p_for_from_relation(s):             # <<<<<<<<<<<<<<
 *     if s.sy in inequality_relations:
 *         op = s.sy
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_for_from_relation", 0);

  /* "Cython/Compiler/Parsing.py":1849
 * 
 * def p_for_from_relation(s):
 *     if s.sy in inequality_relations:             # <<<<<<<<<<<<<<
 *         op = s.sy
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_inequality_relations, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1849, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1850
 * def p_for_from_relation(s):
 *     if s.sy in inequality_relations:
 *         op = s.sy             # <<<<<<<<<<<<<<
 *         s.next()
 *         return op
 */
    __pyx_t_3 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_op = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1851
 *     if s.sy in inequality_relations:
 *         op = s.sy
 *         s.next()             # <<<<<<<<<<<<<<
 *         return op
 *     else:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1852
 *         op = s.sy
 *         s.next()
 *         return op             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("Expected one of '<', '<=', '>' '>='")
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_op);
    __pyx_r = __pyx_v_op;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1849
 * 
 * def p_for_from_relation(s):
 *     if s.sy in inequality_relations:             # <<<<<<<<<<<<<<
 *         op = s.sy
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":1854
 *         return op
 *     else:
 *         s.error("Expected one of '<', '<=', '>' '>='")             # <<<<<<<<<<<<<<
 * 
 * def p_for_from_step(s):
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__92, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1848
 *         return {}
 * 
 * def p_for_from_relation(s):             # <<<<<<<<<<<<<<
 *     if s.sy in inequality_relations:
 *         op = s.sy
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_for_from_relation", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1856
 *         s.error("Expected one of '<', '<=', '>' '>='")
 * 
 * def p_for_from_step(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'by':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_from_step(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_step = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_for_from_step", 0);

  /* "Cython/Compiler/Parsing.py":1857
 * 
 * def p_for_from_step(s):
 *     if s.sy == 'IDENT' and s.systring == 'by':             # <<<<<<<<<<<<<<
 *         s.next()
 *         step = p_bit_expr(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1857, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_by, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1857, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1858
 * def p_for_from_step(s):
 *     if s.sy == 'IDENT' and s.systring == 'by':
 *         s.next()             # <<<<<<<<<<<<<<
 *         step = p_bit_expr(s)
 *         return step
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1859
 *     if s.sy == 'IDENT' and s.systring == 'by':
 *         s.next()
 *         step = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *         return step
 *     else:
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_step = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1860
 *         s.next()
 *         step = p_bit_expr(s)
 *         return step             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_step);
    __pyx_r = __pyx_v_step;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1857
 * 
 * def p_for_from_step(s):
 *     if s.sy == 'IDENT' and s.systring == 'by':             # <<<<<<<<<<<<<<
 *         s.next()
 *         step = p_bit_expr(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":1862
 *         return step
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * inequality_relations = cython.declare(set, set(['<', '<=', '>', '>=']))
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1856
 *         s.error("Expected one of '<', '<=', '>' '>='")
 * 
 * def p_for_from_step(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'by':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_for_from_step", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_step);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1866
 * inequality_relations = cython.declare(set, set(['<', '<=', '>', '>=']))
 * 
 * def p_target(s, terminator):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_starred_expr(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_target(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_terminator) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_exprs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_target", 0);

  /* "Cython/Compiler/Parsing.py":1867
 * 
 * def p_target(s, terminator):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     expr = p_starred_expr(s)
 *     if s.sy == ',':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1868
 * def p_target(s, terminator):
 *     pos = s.position()
 *     expr = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1869
 *     pos = s.position()
 *     expr = p_starred_expr(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = [expr]
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1869, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1870
 *     expr = p_starred_expr(s)
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         exprs = [expr]
 *         while s.sy != terminator:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1870, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1871
 *     if s.sy == ',':
 *         s.next()
 *         exprs = [expr]             # <<<<<<<<<<<<<<
 *         while s.sy != terminator:
 *             exprs.append(p_starred_expr(s))
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_expr);
    __pyx_v_exprs = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1872
 *         s.next()
 *         exprs = [expr]
 *         while s.sy != terminator:             # <<<<<<<<<<<<<<
 *             exprs.append(p_starred_expr(s))
 *             if s.sy != ',':
 */
    while (1) {
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_v_terminator, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1872, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1872, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":1873
 *         exprs = [expr]
 *         while s.sy != terminator:
 *             exprs.append(p_starred_expr(s))             # <<<<<<<<<<<<<<
 *             if s.sy != ',':
 *                 break
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1873, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_exprs, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 1873, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1874
 *         while s.sy != terminator:
 *             exprs.append(p_starred_expr(s))
 *             if s.sy != ',':             # <<<<<<<<<<<<<<
 *                 break
 *             s.next()
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1874, __pyx_L1_error)
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1875
 *             exprs.append(p_starred_expr(s))
 *             if s.sy != ',':
 *                 break             # <<<<<<<<<<<<<<
 *             s.next()
 *         return ExprNodes.TupleNode(pos, args = exprs)
 */
        goto __pyx_L5_break;

        /* "Cython/Compiler/Parsing.py":1874
 *         while s.sy != terminator:
 *             exprs.append(p_starred_expr(s))
 *             if s.sy != ',':             # <<<<<<<<<<<<<<
 *                 break
 *             s.next()
 */
      }

      /* "Cython/Compiler/Parsing.py":1876
 *             if s.sy != ',':
 *                 break
 *             s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L5_break:;

    /* "Cython/Compiler/Parsing.py":1877
 *                 break
 *             s.next()
 *         return ExprNodes.TupleNode(pos, args = exprs)             # <<<<<<<<<<<<<<
 *     else:
 *         return expr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) __PYX_ERR(0, 1877, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1877, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1869
 *     pos = s.position()
 *     expr = p_starred_expr(s)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         exprs = [expr]
 */
  }

  /* "Cython/Compiler/Parsing.py":1879
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1866
 * inequality_relations = cython.declare(set, set(['<', '<=', '>', '>=']))
 * 
 * def p_target(s, terminator):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     expr = p_starred_expr(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_target", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_exprs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1882
 * 
 * 
 * def p_for_target(s):             # <<<<<<<<<<<<<<
 *     return p_target(s, 'in')
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_target(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("p_for_target", 0);

  /* "Cython/Compiler/Parsing.py":1883
 * 
 * def p_for_target(s):
 *     return p_target(s, 'in')             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_target(__pyx_v_s, __pyx_n_u_in); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1882
 * 
 * 
 * def p_for_target(s):             # <<<<<<<<<<<<<<
 *     return p_target(s, 'in')
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_for_target", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1886
 * 
 * 
 * def p_for_iterator(s, allow_testlist=True, is_async=False):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if allow_testlist:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_for_iterator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator *__pyx_optional_args) {
  int __pyx_v_allow_testlist = ((int)1);
  int __pyx_v_is_async = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_for_iterator", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_allow_testlist = __pyx_optional_args->allow_testlist;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_is_async = __pyx_optional_args->is_async;
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":1887
 * 
 * def p_for_iterator(s, allow_testlist=True, is_async=False):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if allow_testlist:
 *         expr = p_testlist(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1888
 * def p_for_iterator(s, allow_testlist=True, is_async=False):
 *     pos = s.position()
 *     if allow_testlist:             # <<<<<<<<<<<<<<
 *         expr = p_testlist(s)
 *     else:
 */
  __pyx_t_2 = (__pyx_v_allow_testlist != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1889
 *     pos = s.position()
 *     if allow_testlist:
 *         expr = p_testlist(s)             # <<<<<<<<<<<<<<
 *     else:
 *         expr = p_or_test(s)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1888
 * def p_for_iterator(s, allow_testlist=True, is_async=False):
 *     pos = s.position()
 *     if allow_testlist:             # <<<<<<<<<<<<<<
 *         expr = p_testlist(s)
 *     else:
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1891
 *         expr = p_testlist(s)
 *     else:
 *         expr = p_or_test(s)             # <<<<<<<<<<<<<<
 *     return (ExprNodes.AsyncIteratorNode if is_async else ExprNodes.IteratorNode)(pos, sequence=expr)
 * 
 */
  /*else*/ {
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_or_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1891, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1892
 *     else:
 *         expr = p_or_test(s)
 *     return (ExprNodes.AsyncIteratorNode if is_async else ExprNodes.IteratorNode)(pos, sequence=expr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  if ((__pyx_v_is_async != 0)) {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AsyncIteratorNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1892, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IteratorNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1892, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_sequence, __pyx_v_expr) < 0) __PYX_ERR(0, 1892, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1886
 * 
 * 
 * def p_for_iterator(s, allow_testlist=True, is_async=False):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if allow_testlist:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_for_iterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1895
 * 
 * 
 * def p_try_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'try'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_try_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_v_except_clauses = NULL;
  PyObject *__pyx_v_else_clause = NULL;
  PyObject *__pyx_v_finally_clause = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_try_statement", 0);

  /* "Cython/Compiler/Parsing.py":1897
 * def p_try_statement(s):
 *     # s.sy == 'try'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     body = p_suite(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1898
 *     # s.sy == 'try'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     body = p_suite(s)
 *     except_clauses = []
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1899
 *     pos = s.position()
 *     s.next()
 *     body = p_suite(s)             # <<<<<<<<<<<<<<
 *     except_clauses = []
 *     else_clause = None
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1900
 *     s.next()
 *     body = p_suite(s)
 *     except_clauses = []             # <<<<<<<<<<<<<<
 *     else_clause = None
 *     if s.sy in ('except', 'else'):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_except_clauses = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1901
 *     body = p_suite(s)
 *     except_clauses = []
 *     else_clause = None             # <<<<<<<<<<<<<<
 *     if s.sy in ('except', 'else'):
 *         while s.sy == 'except':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_else_clause = Py_None;

  /* "Cython/Compiler/Parsing.py":1902
 *     except_clauses = []
 *     else_clause = None
 *     if s.sy in ('except', 'else'):             # <<<<<<<<<<<<<<
 *         while s.sy == 'except':
 *             except_clauses.append(p_except_clause(s))
 */
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_1 = __pyx_v_s->sy;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_except, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1902, __pyx_L1_error)
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_else, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1902, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1903
 *     else_clause = None
 *     if s.sy in ('except', 'else'):
 *         while s.sy == 'except':             # <<<<<<<<<<<<<<
 *             except_clauses.append(p_except_clause(s))
 *         if s.sy == 'else':
 */
    while (1) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_except, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1903, __pyx_L1_error)
      if (!__pyx_t_3) break;

      /* "Cython/Compiler/Parsing.py":1904
 *     if s.sy in ('except', 'else'):
 *         while s.sy == 'except':
 *             except_clauses.append(p_except_clause(s))             # <<<<<<<<<<<<<<
 *         if s.sy == 'else':
 *             s.next()
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_except_clause(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_except_clauses, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 1904, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":1905
 *         while s.sy == 'except':
 *             except_clauses.append(p_except_clause(s))
 *         if s.sy == 'else':             # <<<<<<<<<<<<<<
 *             s.next()
 *             else_clause = p_suite(s)
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_else, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1905, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1906
 *             except_clauses.append(p_except_clause(s))
 *         if s.sy == 'else':
 *             s.next()             # <<<<<<<<<<<<<<
 *             else_clause = p_suite(s)
 *         body = Nodes.TryExceptStatNode(pos,
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1907
 *         if s.sy == 'else':
 *             s.next()
 *             else_clause = p_suite(s)             # <<<<<<<<<<<<<<
 *         body = Nodes.TryExceptStatNode(pos,
 *             body = body, except_clauses = except_clauses,
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_else_clause, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1905
 *         while s.sy == 'except':
 *             except_clauses.append(p_except_clause(s))
 *         if s.sy == 'else':             # <<<<<<<<<<<<<<
 *             s.next()
 *             else_clause = p_suite(s)
 */
    }

    /* "Cython/Compiler/Parsing.py":1908
 *             s.next()
 *             else_clause = p_suite(s)
 *         body = Nodes.TryExceptStatNode(pos,             # <<<<<<<<<<<<<<
 *             body = body, except_clauses = except_clauses,
 *             else_clause = else_clause)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_TryExceptStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1908, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1908, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":1909
 *             else_clause = p_suite(s)
 *         body = Nodes.TryExceptStatNode(pos,
 *             body = body, except_clauses = except_clauses,             # <<<<<<<<<<<<<<
 *             else_clause = else_clause)
 *         if s.sy != 'finally':
 */
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1909, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_except_clauses, __pyx_v_except_clauses) < 0) __PYX_ERR(0, 1909, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1910
 *         body = Nodes.TryExceptStatNode(pos,
 *             body = body, except_clauses = except_clauses,
 *             else_clause = else_clause)             # <<<<<<<<<<<<<<
 *         if s.sy != 'finally':
 *             return body
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) __PYX_ERR(0, 1909, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1908
 *             s.next()
 *             else_clause = p_suite(s)
 *         body = Nodes.TryExceptStatNode(pos,             # <<<<<<<<<<<<<<
 *             body = body, except_clauses = except_clauses,
 *             else_clause = else_clause)
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1908, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_body, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1911
 *             body = body, except_clauses = except_clauses,
 *             else_clause = else_clause)
 *         if s.sy != 'finally':             # <<<<<<<<<<<<<<
 *             return body
 *         # try-except-finally is equivalent to nested try-except/try-finally
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_finally, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1911, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1912
 *             else_clause = else_clause)
 *         if s.sy != 'finally':
 *             return body             # <<<<<<<<<<<<<<
 *         # try-except-finally is equivalent to nested try-except/try-finally
 *     if s.sy == 'finally':
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_body);
      __pyx_r = __pyx_v_body;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":1911
 *             body = body, except_clauses = except_clauses,
 *             else_clause = else_clause)
 *         if s.sy != 'finally':             # <<<<<<<<<<<<<<
 *             return body
 *         # try-except-finally is equivalent to nested try-except/try-finally
 */
    }

    /* "Cython/Compiler/Parsing.py":1902
 *     except_clauses = []
 *     else_clause = None
 *     if s.sy in ('except', 'else'):             # <<<<<<<<<<<<<<
 *         while s.sy == 'except':
 *             except_clauses.append(p_except_clause(s))
 */
  }

  /* "Cython/Compiler/Parsing.py":1914
 *             return body
 *         # try-except-finally is equivalent to nested try-except/try-finally
 *     if s.sy == 'finally':             # <<<<<<<<<<<<<<
 *         s.next()
 *         finally_clause = p_suite(s)
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_finally, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1914, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1915
 *         # try-except-finally is equivalent to nested try-except/try-finally
 *     if s.sy == 'finally':
 *         s.next()             # <<<<<<<<<<<<<<
 *         finally_clause = p_suite(s)
 *         return Nodes.TryFinallyStatNode(pos,
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1915, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1916
 *     if s.sy == 'finally':
 *         s.next()
 *         finally_clause = p_suite(s)             # <<<<<<<<<<<<<<
 *         return Nodes.TryFinallyStatNode(pos,
 *             body = body, finally_clause = finally_clause)
 */
    __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_finally_clause = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1917
 *         s.next()
 *         finally_clause = p_suite(s)
 *         return Nodes.TryFinallyStatNode(pos,             # <<<<<<<<<<<<<<
 *             body = body, finally_clause = finally_clause)
 *     else:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_TryFinallyStatNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":1918
 *         finally_clause = p_suite(s)
 *         return Nodes.TryFinallyStatNode(pos,
 *             body = body, finally_clause = finally_clause)             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("Expected 'except' or 'finally'")
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1918, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1918, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_finally_clause, __pyx_v_finally_clause) < 0) __PYX_ERR(0, 1918, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":1917
 *         s.next()
 *         finally_clause = p_suite(s)
 *         return Nodes.TryFinallyStatNode(pos,             # <<<<<<<<<<<<<<
 *             body = body, finally_clause = finally_clause)
 *     else:
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1914
 *             return body
 *         # try-except-finally is equivalent to nested try-except/try-finally
 *     if s.sy == 'finally':             # <<<<<<<<<<<<<<
 *         s.next()
 *         finally_clause = p_suite(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":1920
 *             body = body, finally_clause = finally_clause)
 *     else:
 *         s.error("Expected 'except' or 'finally'")             # <<<<<<<<<<<<<<
 * 
 * def p_except_clause(s):
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1920, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__93, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1920, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1895
 * 
 * 
 * def p_try_statement(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'try'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_try_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XDECREF(__pyx_v_except_clauses);
  __Pyx_XDECREF(__pyx_v_else_clause);
  __Pyx_XDECREF(__pyx_v_finally_clause);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1922
 *         s.error("Expected 'except' or 'finally'")
 * 
 * def p_except_clause(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'except'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_except_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_exc_type = NULL;
  PyObject *__pyx_v_exc_value = NULL;
  int __pyx_v_is_except_as;
  PyObject *__pyx_v_pos2 = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_except_clause", 0);

  /* "Cython/Compiler/Parsing.py":1924
 * def p_except_clause(s):
 *     # s.sy == 'except'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     exc_type = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1925
 *     # s.sy == 'except'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     exc_type = None
 *     exc_value = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1926
 *     pos = s.position()
 *     s.next()
 *     exc_type = None             # <<<<<<<<<<<<<<
 *     exc_value = None
 *     is_except_as = False
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_exc_type = Py_None;

  /* "Cython/Compiler/Parsing.py":1927
 *     s.next()
 *     exc_type = None
 *     exc_value = None             # <<<<<<<<<<<<<<
 *     is_except_as = False
 *     if s.sy != ':':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_exc_value = Py_None;

  /* "Cython/Compiler/Parsing.py":1928
 *     exc_type = None
 *     exc_value = None
 *     is_except_as = False             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         exc_type = p_test(s)
 */
  __pyx_v_is_except_as = 0;

  /* "Cython/Compiler/Parsing.py":1929
 *     exc_value = None
 *     is_except_as = False
 *     if s.sy != ':':             # <<<<<<<<<<<<<<
 *         exc_type = p_test(s)
 *         # normalise into list of single exception tests
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1929, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1930
 *     is_except_as = False
 *     if s.sy != ':':
 *         exc_type = p_test(s)             # <<<<<<<<<<<<<<
 *         # normalise into list of single exception tests
 *         if isinstance(exc_type, ExprNodes.TupleNode):
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_exc_type, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1932
 *         exc_type = p_test(s)
 *         # normalise into list of single exception tests
 *         if isinstance(exc_type, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
 *             exc_type = exc_type.args
 *         else:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1932, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_IsInstance(__pyx_v_exc_type, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 1932, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1933
 *         # normalise into list of single exception tests
 *         if isinstance(exc_type, ExprNodes.TupleNode):
 *             exc_type = exc_type.args             # <<<<<<<<<<<<<<
 *         else:
 *             exc_type = [exc_type]
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exc_type, __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1933, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_exc_type, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1932
 *         exc_type = p_test(s)
 *         # normalise into list of single exception tests
 *         if isinstance(exc_type, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
 *             exc_type = exc_type.args
 *         else:
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":1935
 *             exc_type = exc_type.args
 *         else:
 *             exc_type = [exc_type]             # <<<<<<<<<<<<<<
 *         if s.sy == ',' or (s.sy == 'IDENT' and s.systring == 'as'
 *                            and s.context.language_level == 2):
 */
    /*else*/ {
      __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_exc_type);
      __Pyx_GIVEREF(__pyx_v_exc_type);
      PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_exc_type);
      __Pyx_DECREF_SET(__pyx_v_exc_type, __pyx_t_1);
      __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1936
 *         else:
 *             exc_type = [exc_type]
 *         if s.sy == ',' or (s.sy == 'IDENT' and s.systring == 'as'             # <<<<<<<<<<<<<<
 *                            and s.context.language_level == 2):
 *             s.next()
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1936, __pyx_L1_error)
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1936, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L6_bool_binop_done;
    }

    /* "Cython/Compiler/Parsing.py":1937
 *             exc_type = [exc_type]
 *         if s.sy == ',' or (s.sy == 'IDENT' and s.systring == 'as'
 *                            and s.context.language_level == 2):             # <<<<<<<<<<<<<<
 *             s.next()
 *             exc_value = p_test(s)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1936, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1937, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1937, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_2;
    __pyx_L6_bool_binop_done:;

    /* "Cython/Compiler/Parsing.py":1936
 *         else:
 *             exc_type = [exc_type]
 *         if s.sy == ',' or (s.sy == 'IDENT' and s.systring == 'as'             # <<<<<<<<<<<<<<
 *                            and s.context.language_level == 2):
 *             s.next()
 */
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1938
 *         if s.sy == ',' or (s.sy == 'IDENT' and s.systring == 'as'
 *                            and s.context.language_level == 2):
 *             s.next()             # <<<<<<<<<<<<<<
 *             exc_value = p_test(s)
 *         elif s.sy == 'IDENT' and s.systring == 'as':
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1938, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1939
 *                            and s.context.language_level == 2):
 *             s.next()
 *             exc_value = p_test(s)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'IDENT' and s.systring == 'as':
 *             # Py3 syntax requires a name here
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1939, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_exc_value, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1936
 *         else:
 *             exc_type = [exc_type]
 *         if s.sy == ',' or (s.sy == 'IDENT' and s.systring == 'as'             # <<<<<<<<<<<<<<
 *                            and s.context.language_level == 2):
 *             s.next()
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":1940
 *             s.next()
 *             exc_value = p_test(s)
 *         elif s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *             # Py3 syntax requires a name here
 *             s.next()
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1940, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1940, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_2;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1942
 *         elif s.sy == 'IDENT' and s.systring == 'as':
 *             # Py3 syntax requires a name here
 *             s.next()             # <<<<<<<<<<<<<<
 *             pos2 = s.position()
 *             name = p_ident(s)
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1942, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1943
 *             # Py3 syntax requires a name here
 *             s.next()
 *             pos2 = s.position()             # <<<<<<<<<<<<<<
 *             name = p_ident(s)
 *             exc_value = ExprNodes.NameNode(pos2, name = name)
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_pos2 = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1944
 *             s.next()
 *             pos2 = s.position()
 *             name = p_ident(s)             # <<<<<<<<<<<<<<
 *             exc_value = ExprNodes.NameNode(pos2, name = name)
 *             is_except_as = True
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1944, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_name = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1945
 *             pos2 = s.position()
 *             name = p_ident(s)
 *             exc_value = ExprNodes.NameNode(pos2, name = name)             # <<<<<<<<<<<<<<
 *             is_except_as = True
 *     body = p_suite(s)
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos2);
      __Pyx_GIVEREF(__pyx_v_pos2);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos2);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 1945, __pyx_L1_error)
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_exc_value, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1946
 *             name = p_ident(s)
 *             exc_value = ExprNodes.NameNode(pos2, name = name)
 *             is_except_as = True             # <<<<<<<<<<<<<<
 *     body = p_suite(s)
 *     return Nodes.ExceptClauseNode(pos,
 */
      __pyx_v_is_except_as = 1;

      /* "Cython/Compiler/Parsing.py":1940
 *             s.next()
 *             exc_value = p_test(s)
 *         elif s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *             # Py3 syntax requires a name here
 *             s.next()
 */
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1929
 *     exc_value = None
 *     is_except_as = False
 *     if s.sy != ':':             # <<<<<<<<<<<<<<
 *         exc_type = p_test(s)
 *         # normalise into list of single exception tests
 */
  }

  /* "Cython/Compiler/Parsing.py":1947
 *             exc_value = ExprNodes.NameNode(pos2, name = name)
 *             is_except_as = True
 *     body = p_suite(s)             # <<<<<<<<<<<<<<
 *     return Nodes.ExceptClauseNode(pos,
 *         pattern = exc_type, target = exc_value,
 */
  __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_body = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":1948
 *             is_except_as = True
 *     body = p_suite(s)
 *     return Nodes.ExceptClauseNode(pos,             # <<<<<<<<<<<<<<
 *         pattern = exc_type, target = exc_value,
 *         body = body, is_except_as=is_except_as)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExceptClauseNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":1949
 *     body = p_suite(s)
 *     return Nodes.ExceptClauseNode(pos,
 *         pattern = exc_type, target = exc_value,             # <<<<<<<<<<<<<<
 *         body = body, is_except_as=is_except_as)
 * 
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pattern, __pyx_v_exc_type) < 0) __PYX_ERR(0, 1949, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_v_exc_value) < 0) __PYX_ERR(0, 1949, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":1950
 *     return Nodes.ExceptClauseNode(pos,
 *         pattern = exc_type, target = exc_value,
 *         body = body, is_except_as=is_except_as)             # <<<<<<<<<<<<<<
 * 
 * def p_include_statement(s, ctx):
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1949, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_except_as); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_is_except_as, __pyx_t_4) < 0) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":1948
 *             is_except_as = True
 *     body = p_suite(s)
 *     return Nodes.ExceptClauseNode(pos,             # <<<<<<<<<<<<<<
 *         pattern = exc_type, target = exc_value,
 *         body = body, is_except_as=is_except_as)
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1922
 *         s.error("Expected 'except' or 'finally'")
 * 
 * def p_except_clause(s):             # <<<<<<<<<<<<<<
 *     # s.sy == 'except'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_except_clause", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_exc_type);
  __Pyx_XDECREF(__pyx_v_exc_value);
  __Pyx_XDECREF(__pyx_v_pos2);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1952
 *         body = body, is_except_as=is_except_as)
 * 
 * def p_include_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next() # 'include'
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_include_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_unicode_include_file_name = NULL;
  PyObject *__pyx_v_include_file_name = NULL;
  PyObject *__pyx_v_include_file_path = NULL;
  PyObject *__pyx_v_f = NULL;
  PyObject *__pyx_v_source_desc = NULL;
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s2 = NULL;
  PyObject *__pyx_v_tree = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  __Pyx_RefNannySetupContext("p_include_statement", 0);

  /* "Cython/Compiler/Parsing.py":1953
 * 
 * def p_include_statement(s, ctx):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next() # 'include'
 *     unicode_include_file_name = p_string_literal(s, 'u')[2]
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1954
 * def p_include_statement(s, ctx):
 *     pos = s.position()
 *     s.next() # 'include'             # <<<<<<<<<<<<<<
 *     unicode_include_file_name = p_string_literal(s, 'u')[2]
 *     s.expect_newline("Syntax error in include statement")
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1955
 *     pos = s.position()
 *     s.next() # 'include'
 *     unicode_include_file_name = p_string_literal(s, 'u')[2]             # <<<<<<<<<<<<<<
 *     s.expect_newline("Syntax error in include statement")
 *     if s.compile_time_eval:
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.kind_override = __pyx_n_u_u;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_unicode_include_file_name = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1956
 *     s.next() # 'include'
 *     unicode_include_file_name = p_string_literal(s, 'u')[2]
 *     s.expect_newline("Syntax error in include statement")             # <<<<<<<<<<<<<<
 *     if s.compile_time_eval:
 *         include_file_name = unicode_include_file_name
 */
  __pyx_t_4.__pyx_n = 1;
  __pyx_t_4.message = __pyx_kp_u_Syntax_error_in_include_statemen;
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1957
 *     unicode_include_file_name = p_string_literal(s, 'u')[2]
 *     s.expect_newline("Syntax error in include statement")
 *     if s.compile_time_eval:             # <<<<<<<<<<<<<<
 *         include_file_name = unicode_include_file_name
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 */
  __pyx_t_5 = (__pyx_v_s->compile_time_eval != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1958
 *     s.expect_newline("Syntax error in include statement")
 *     if s.compile_time_eval:
 *         include_file_name = unicode_include_file_name             # <<<<<<<<<<<<<<
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 *         if include_file_path:
 */
    __Pyx_INCREF(__pyx_v_unicode_include_file_name);
    __pyx_v_include_file_name = __pyx_v_unicode_include_file_name;

    /* "Cython/Compiler/Parsing.py":1959
 *     if s.compile_time_eval:
 *         include_file_name = unicode_include_file_name
 *         include_file_path = s.context.find_include_file(include_file_name, pos)             # <<<<<<<<<<<<<<
 *         if include_file_path:
 *             s.included_files.append(include_file_name)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_find_include_file); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_include_file_name, __pyx_v_pos};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1959, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_include_file_name, __pyx_v_pos};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1959, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_include_file_name);
      __Pyx_GIVEREF(__pyx_v_include_file_name);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_include_file_name);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_pos);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_include_file_path = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1960
 *         include_file_name = unicode_include_file_name
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 *         if include_file_path:             # <<<<<<<<<<<<<<
 *             s.included_files.append(include_file_name)
 *             with Utils.open_source_file(include_file_path) as f:
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_include_file_path); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1960, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1961
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 *         if include_file_path:
 *             s.included_files.append(include_file_name)             # <<<<<<<<<<<<<<
 *             with Utils.open_source_file(include_file_path) as f:
 *                 source_desc = FileSourceDescriptor(include_file_path)
 */
      if (unlikely(__pyx_v_s->included_files == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
        __PYX_ERR(0, 1961, __pyx_L1_error)
      }
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_s->included_files, __pyx_v_include_file_name); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1961, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":1962
 *         if include_file_path:
 *             s.included_files.append(include_file_name)
 *             with Utils.open_source_file(include_file_path) as f:             # <<<<<<<<<<<<<<
 *                 source_desc = FileSourceDescriptor(include_file_path)
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 */
      /*with:*/ {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Utils, __pyx_n_s_open_source_file); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        if (!__pyx_t_8) {
          __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_include_file_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
        } else {
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_1)) {
            PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_include_file_path};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1962, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_GOTREF(__pyx_t_3);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
            PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_include_file_path};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1962, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_GOTREF(__pyx_t_3);
          } else
          #endif
          {
            __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1962, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL;
            __Pyx_INCREF(__pyx_v_include_file_path);
            __Pyx_GIVEREF(__pyx_v_include_file_path);
            PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_include_file_path);
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1962, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1962, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1962, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L5_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L5_error)
        }
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        /*try:*/ {
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
            __Pyx_XGOTREF(__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_12);
            __Pyx_XGOTREF(__pyx_t_13);
            /*try:*/ {
              __pyx_v_f = __pyx_t_6;
              __pyx_t_6 = 0;

              /* "Cython/Compiler/Parsing.py":1963
 *             s.included_files.append(include_file_name)
 *             with Utils.open_source_file(include_file_path) as f:
 *                 source_desc = FileSourceDescriptor(include_file_path)             # <<<<<<<<<<<<<<
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 *                 tree = p_statement_list(s2, ctx)
 */
              __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor);
              __pyx_t_3 = __pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor; __pyx_t_1 = NULL;
              if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
                __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
                if (likely(__pyx_t_1)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                  __Pyx_INCREF(__pyx_t_1);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_3, function);
                }
              }
              if (!__pyx_t_1) {
                __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_include_file_path); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1963, __pyx_L9_error)
                __Pyx_GOTREF(__pyx_t_6);
              } else {
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_3)) {
                  PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_include_file_path};
                  __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1963, __pyx_L9_error)
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_GOTREF(__pyx_t_6);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
                  PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_include_file_path};
                  __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1963, __pyx_L9_error)
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_GOTREF(__pyx_t_6);
                } else
                #endif
                {
                  __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1963, __pyx_L9_error)
                  __Pyx_GOTREF(__pyx_t_8);
                  __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL;
                  __Pyx_INCREF(__pyx_v_include_file_path);
                  __Pyx_GIVEREF(__pyx_v_include_file_path);
                  PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_include_file_path);
                  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1963, __pyx_L9_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                }
              }
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_v_source_desc = __pyx_t_6;
              __pyx_t_6 = 0;

              /* "Cython/Compiler/Parsing.py":1964
 *             with Utils.open_source_file(include_file_path) as f:
 *                 source_desc = FileSourceDescriptor(include_file_path)
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)             # <<<<<<<<<<<<<<
 *                 tree = p_statement_list(s2, ctx)
 *             return tree
 */
              __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_INCREF(__pyx_v_f);
              __Pyx_GIVEREF(__pyx_v_f);
              PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_f);
              __Pyx_INCREF(__pyx_v_source_desc);
              __Pyx_GIVEREF(__pyx_v_source_desc);
              PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_source_desc);
              __Pyx_INCREF(((PyObject *)__pyx_v_s));
              __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
              PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_s));
              __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_encoding); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_8);
              if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_source_encoding, __pyx_t_8) < 0) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_s->parse_comments); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_8);
              if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_parse_comments, __pyx_t_8) < 0) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner), __pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1964, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_v_s2 = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_t_8);
              __pyx_t_8 = 0;

              /* "Cython/Compiler/Parsing.py":1965
 *                 source_desc = FileSourceDescriptor(include_file_path)
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 *                 tree = p_statement_list(s2, ctx)             # <<<<<<<<<<<<<<
 *             return tree
 *         else:
 */
              __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(__pyx_v_s2, __pyx_v_ctx, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1965, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_v_tree = __pyx_t_8;
              __pyx_t_8 = 0;

              /* "Cython/Compiler/Parsing.py":1962
 *         if include_file_path:
 *             s.included_files.append(include_file_name)
 *             with Utils.open_source_file(include_file_path) as f:             # <<<<<<<<<<<<<<
 *                 source_desc = FileSourceDescriptor(include_file_path)
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 */
            }
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            goto __pyx_L16_try_end;
            __pyx_L9_error:;
            __Pyx_PyThreadState_assign
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            /*except:*/ {
              __Pyx_AddTraceback("Cython.Compiler.Parsing.p_include_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_3, &__pyx_t_6) < 0) __PYX_ERR(0, 1962, __pyx_L11_except_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_1 = PyTuple_Pack(3, __pyx_t_8, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L11_except_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1962, __pyx_L11_except_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_5 < 0) __PYX_ERR(0, 1962, __pyx_L11_except_error)
              __pyx_t_15 = ((!(__pyx_t_5 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_8);
                __Pyx_GIVEREF(__pyx_t_3);
                __Pyx_XGIVEREF(__pyx_t_6);
                __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_3, __pyx_t_6);
                __pyx_t_8 = 0; __pyx_t_3 = 0; __pyx_t_6 = 0; 
                __PYX_ERR(0, 1962, __pyx_L11_except_error)
              }
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              goto __pyx_L10_exception_handled;
            }
            __pyx_L11_except_error:;
            __Pyx_PyThreadState_assign
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
            goto __pyx_L1_error;
            __pyx_L10_exception_handled:;
            __Pyx_PyThreadState_assign
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
            __pyx_L16_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_10) {
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__94, NULL);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1962, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            }
            goto __pyx_L8;
          }
          __pyx_L8:;
        }
        goto __pyx_L20;
        __pyx_L5_error:;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L1_error;
        __pyx_L20:;
      }

      /* "Cython/Compiler/Parsing.py":1966
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 *                 tree = p_statement_list(s2, ctx)
 *             return tree             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_v_tree)) { __Pyx_RaiseUnboundLocalError("tree"); __PYX_ERR(0, 1966, __pyx_L1_error) }
      __Pyx_INCREF(__pyx_v_tree);
      __pyx_r = __pyx_v_tree;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":1960
 *         include_file_name = unicode_include_file_name
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 *         if include_file_path:             # <<<<<<<<<<<<<<
 *             s.included_files.append(include_file_name)
 *             with Utils.open_source_file(include_file_path) as f:
 */
    }

    /* "Cython/Compiler/Parsing.py":1968
 *             return tree
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.PassStatNode(pos)
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_None);
      __pyx_r = Py_None;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1957
 *     unicode_include_file_name = p_string_literal(s, 'u')[2]
 *     s.expect_newline("Syntax error in include statement")
 *     if s.compile_time_eval:             # <<<<<<<<<<<<<<
 *         include_file_name = unicode_include_file_name
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 */
  }

  /* "Cython/Compiler/Parsing.py":1970
 *             return None
 *     else:
 *         return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    if (!__pyx_t_8) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_pos); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_pos};
        __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1970, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_pos};
        __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1970, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_pos);
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1952
 *         body = body, is_except_as=is_except_as)
 * 
 * def p_include_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next() # 'include'
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_include_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_unicode_include_file_name);
  __Pyx_XDECREF(__pyx_v_include_file_name);
  __Pyx_XDECREF(__pyx_v_include_file_path);
  __Pyx_XDECREF(__pyx_v_f);
  __Pyx_XDECREF(__pyx_v_source_desc);
  __Pyx_XDECREF((PyObject *)__pyx_v_s2);
  __Pyx_XDECREF(__pyx_v_tree);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1973
 * 
 * 
 * def p_with_statement(s):             # <<<<<<<<<<<<<<
 *     s.next()  # 'with'
 *     if s.systring == 'template' and not s.in_python_file:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("p_with_statement", 0);

  /* "Cython/Compiler/Parsing.py":1974
 * 
 * def p_with_statement(s):
 *     s.next()  # 'with'             # <<<<<<<<<<<<<<
 *     if s.systring == 'template' and not s.in_python_file:
 *         node = p_with_template(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1975
 * def p_with_statement(s):
 *     s.next()  # 'with'
 *     if s.systring == 'template' and not s.in_python_file:             # <<<<<<<<<<<<<<
 *         node = p_with_template(s)
 *     else:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_template, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1975, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1976
 *     s.next()  # 'with'
 *     if s.systring == 'template' and not s.in_python_file:
 *         node = p_with_template(s)             # <<<<<<<<<<<<<<
 *     else:
 *         node = p_with_items(s)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_template(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1975
 * def p_with_statement(s):
 *     s.next()  # 'with'
 *     if s.systring == 'template' and not s.in_python_file:             # <<<<<<<<<<<<<<
 *         node = p_with_template(s)
 *     else:
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1978
 *         node = p_with_template(s)
 *     else:
 *         node = p_with_items(s)             # <<<<<<<<<<<<<<
 *     return node
 * 
 */
  /*else*/ {
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1979
 *     else:
 *         node = p_with_items(s)
 *     return node             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_node);
  __pyx_r = __pyx_v_node;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1973
 * 
 * 
 * def p_with_statement(s):             # <<<<<<<<<<<<<<
 *     s.next()  # 'with'
 *     if s.systring == 'template' and not s.in_python_file:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_with_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1982
 * 
 * 
 * def p_with_items(s, is_async=False):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_items(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items *__pyx_optional_args) {
  int __pyx_v_is_async = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_state = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_v_manager = NULL;
  PyObject *__pyx_v_target = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items __pyx_t_8;
  __Pyx_RefNannySetupContext("p_with_items", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_is_async = __pyx_optional_args->is_async;
    }
  }

  /* "Cython/Compiler/Parsing.py":1983
 * 
 * def p_with_items(s, is_async=False):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         if is_async:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1984
 * def p_with_items(s, is_async=False):
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):             # <<<<<<<<<<<<<<
 *         if is_async:
 *             s.error("with gil/nogil cannot be async")
 */
  __pyx_t_3 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1984, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_s->systring);
  __pyx_t_1 = __pyx_v_s->systring;
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_nogil, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1984, __pyx_L1_error)
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_gil, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1984, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L7_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1985
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         if is_async:             # <<<<<<<<<<<<<<
 *             s.error("with gil/nogil cannot be async")
 *         state = s.systring
 */
    __pyx_t_2 = (__pyx_v_is_async != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1986
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         if is_async:
 *             s.error("with gil/nogil cannot be async")             # <<<<<<<<<<<<<<
 *         state = s.systring
 *         s.next()
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1986, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__95, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1986, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1985
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         if is_async:             # <<<<<<<<<<<<<<
 *             s.error("with gil/nogil cannot be async")
 *         state = s.systring
 */
    }

    /* "Cython/Compiler/Parsing.py":1987
 *         if is_async:
 *             s.error("with gil/nogil cannot be async")
 *         state = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ',':
 */
    __pyx_t_5 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_v_state = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1988
 *             s.error("with gil/nogil cannot be async")
 *         state = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1989
 *         state = s.systring
 *         s.next()
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             body = p_with_items(s)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1989, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1990
 *         s.next()
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             body = p_with_items(s)
 *         else:
 */
      __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1990, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1991
 *         if s.sy == ',':
 *             s.next()
 *             body = p_with_items(s)             # <<<<<<<<<<<<<<
 *         else:
 *             body = p_suite(s)
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1991, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_body = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1989
 *         state = s.systring
 *         s.next()
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             body = p_with_items(s)
 */
      goto __pyx_L10;
    }

    /* "Cython/Compiler/Parsing.py":1993
 *             body = p_with_items(s)
 *         else:
 *             body = p_suite(s)             # <<<<<<<<<<<<<<
 *         return Nodes.GILStatNode(pos, state=state, body=body)
 *     else:
 */
    /*else*/ {
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1993, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_body = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    __pyx_L10:;

    /* "Cython/Compiler/Parsing.py":1994
 *         else:
 *             body = p_suite(s)
 *         return Nodes.GILStatNode(pos, state=state, body=body)             # <<<<<<<<<<<<<<
 *     else:
 *         manager = p_test(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_GILStatNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_state, __pyx_v_state) < 0) __PYX_ERR(0, 1994, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 1994, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":1984
 * def p_with_items(s, is_async=False):
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):             # <<<<<<<<<<<<<<
 *         if is_async:
 *             s.error("with gil/nogil cannot be async")
 */
  }

  /* "Cython/Compiler/Parsing.py":1996
 *         return Nodes.GILStatNode(pos, state=state, body=body)
 *     else:
 *         manager = p_test(s)             # <<<<<<<<<<<<<<
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':
 */
  /*else*/ {
    __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_manager = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1997
 *     else:
 *         manager = p_test(s)
 *         target = None             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT' and s.systring == 'as':
 *             s.next()
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_target = Py_None;

    /* "Cython/Compiler/Parsing.py":1998
 *         manager = p_test(s)
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *             s.next()
 *             target = p_starred_expr(s)
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1998, __pyx_L1_error)
    if (__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1998, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_4;
    __pyx_L12_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1999
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':
 *             s.next()             # <<<<<<<<<<<<<<
 *             target = p_starred_expr(s)
 *         if s.sy == ',':
 */
      __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1999, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2000
 *         if s.sy == 'IDENT' and s.systring == 'as':
 *             s.next()
 *             target = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2000, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1998
 *         manager = p_test(s)
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *             s.next()
 *             target = p_starred_expr(s)
 */
    }

    /* "Cython/Compiler/Parsing.py":2001
 *             s.next()
 *             target = p_starred_expr(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             body = p_with_items(s, is_async=is_async)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2001, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2002
 *             target = p_starred_expr(s)
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             body = p_with_items(s, is_async=is_async)
 *         else:
 */
      __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2002, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2003
 *         if s.sy == ',':
 *             s.next()
 *             body = p_with_items(s, is_async=is_async)             # <<<<<<<<<<<<<<
 *         else:
 *             body = p_suite(s)
 */
      __pyx_t_8.__pyx_n = 1;
      __pyx_t_8.is_async = __pyx_v_is_async;
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s, &__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2003, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_v_body = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2001
 *             s.next()
 *             target = p_starred_expr(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             body = p_with_items(s, is_async=is_async)
 */
      goto __pyx_L14;
    }

    /* "Cython/Compiler/Parsing.py":2005
 *             body = p_with_items(s, is_async=is_async)
 *         else:
 *             body = p_suite(s)             # <<<<<<<<<<<<<<
 *     return Nodes.WithStatNode(pos, manager=manager, target=target, body=body, is_async=is_async)
 * 
 */
    /*else*/ {
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2005, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_v_body = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    __pyx_L14:;
  }

  /* "Cython/Compiler/Parsing.py":2006
 *         else:
 *             body = p_suite(s)
 *     return Nodes.WithStatNode(pos, manager=manager, target=target, body=body, is_async=is_async)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_WithStatNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_manager, __pyx_v_manager) < 0) __PYX_ERR(0, 2006, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_v_target) < 0) __PYX_ERR(0, 2006, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 2006, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_is_async, __pyx_t_5) < 0) __PYX_ERR(0, 2006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1982
 * 
 * 
 * def p_with_items(s, is_async=False):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_with_items", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XDECREF(__pyx_v_manager);
  __Pyx_XDECREF(__pyx_v_target);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2009
 * 
 * 
 * def p_with_template(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     templates = []
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_template(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_templates = NULL;
  PyObject *__pyx_v_body_ctx = NULL;
  PyObject *__pyx_v_func_or_var = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_RefNannySetupContext("p_with_template", 0);

  /* "Cython/Compiler/Parsing.py":2010
 * 
 * def p_with_template(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     templates = []
 *     s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2011
 * def p_with_template(s):
 *     pos = s.position()
 *     templates = []             # <<<<<<<<<<<<<<
 *     s.next()
 *     s.expect('[')
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_templates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2012
 *     pos = s.position()
 *     templates = []
 *     s.next()             # <<<<<<<<<<<<<<
 *     s.expect('[')
 *     templates.append(s.systring)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2012, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2013
 *     templates = []
 *     s.next()
 *     s.expect('[')             # <<<<<<<<<<<<<<
 *     templates.append(s.systring)
 *     s.next()
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__36, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2013, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2014
 *     s.next()
 *     s.expect('[')
 *     templates.append(s.systring)             # <<<<<<<<<<<<<<
 *     s.next()
 *     while s.systring == ',':
 */
  __pyx_t_1 = __pyx_v_s->systring;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_templates, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2015
 *     s.expect('[')
 *     templates.append(s.systring)
 *     s.next()             # <<<<<<<<<<<<<<
 *     while s.systring == ',':
 *         s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2016
 *     templates.append(s.systring)
 *     s.next()
 *     while s.systring == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *         templates.append(s.systring)
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2016, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":2017
 *     s.next()
 *     while s.systring == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         templates.append(s.systring)
 *         s.next()
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2017, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2018
 *     while s.systring == ',':
 *         s.next()
 *         templates.append(s.systring)             # <<<<<<<<<<<<<<
 *         s.next()
 *     s.expect(']')
 */
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_templates, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2019
 *         s.next()
 *         templates.append(s.systring)
 *         s.next()             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     if s.sy == ':':
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":2020
 *         templates.append(s.systring)
 *         s.next()
 *     s.expect(']')             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         s.next()
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2020, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2021
 *         s.next()
 *     s.expect(']')
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect_newline("Syntax error in template function declaration")
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2021, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2022
 *     s.expect(']')
 *     if s.sy == ':':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in template function declaration")
 *         s.expect_indent()
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2022, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2023
 *     if s.sy == ':':
 *         s.next()
 *         s.expect_newline("Syntax error in template function declaration")             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         body_ctx = Ctx()
 */
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.message = __pyx_kp_u_Syntax_error_in_template_functio;
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2023, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2024
 *         s.next()
 *         s.expect_newline("Syntax error in template function declaration")
 *         s.expect_indent()             # <<<<<<<<<<<<<<
 *         body_ctx = Ctx()
 *         body_ctx.templates = templates
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_indent(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2025
 *         s.expect_newline("Syntax error in template function declaration")
 *         s.expect_indent()
 *         body_ctx = Ctx()             # <<<<<<<<<<<<<<
 *         body_ctx.templates = templates
 *         func_or_var = p_c_func_or_var_declaration(s, pos, body_ctx)
 */
    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (__pyx_t_6) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2025, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else {
      __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2025, __pyx_L1_error)
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_body_ctx = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2026
 *         s.expect_indent()
 *         body_ctx = Ctx()
 *         body_ctx.templates = templates             # <<<<<<<<<<<<<<
 *         func_or_var = p_c_func_or_var_declaration(s, pos, body_ctx)
 *         s.expect_dedent()
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_body_ctx, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 2026, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2027
 *         body_ctx = Ctx()
 *         body_ctx.templates = templates
 *         func_or_var = p_c_func_or_var_declaration(s, pos, body_ctx)             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *         return func_or_var
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(__pyx_v_s, __pyx_v_pos, __pyx_v_body_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_func_or_var = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2028
 *         body_ctx.templates = templates
 *         func_or_var = p_c_func_or_var_declaration(s, pos, body_ctx)
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *         return func_or_var
 *     else:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2029
 *         func_or_var = p_c_func_or_var_declaration(s, pos, body_ctx)
 *         s.expect_dedent()
 *         return func_or_var             # <<<<<<<<<<<<<<
 *     else:
 *         error(pos, "Syntax error in template function declaration")
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_func_or_var);
    __pyx_r = __pyx_v_func_or_var;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2021
 *         s.next()
 *     s.expect(']')
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect_newline("Syntax error in template function declaration")
 */
  }

  /* "Cython/Compiler/Parsing.py":2031
 *         return func_or_var
 *     else:
 *         error(pos, "Syntax error in template function declaration")             # <<<<<<<<<<<<<<
 * 
 * def p_simple_statement(s, first_statement = 0):
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Syntax_error_in_template_functio};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2031, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Syntax_error_in_template_functio};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2031, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2031, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Syntax_error_in_template_functio);
      __Pyx_GIVEREF(__pyx_kp_u_Syntax_error_in_template_functio);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Syntax_error_in_template_functio);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2031, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":2009
 * 
 * 
 * def p_with_template(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     templates = []
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_with_template", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_templates);
  __Pyx_XDECREF(__pyx_v_body_ctx);
  __Pyx_XDECREF(__pyx_v_func_or_var);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2033
 *         error(pos, "Syntax error in template function declaration")
 * 
 * def p_simple_statement(s, first_statement = 0):             # <<<<<<<<<<<<<<
 *     #print "p_simple_statement:", s.sy, s.systring ###
 *     if s.sy == 'global':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement *__pyx_optional_args) {
  int __pyx_v_first_statement = ((int)0);
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement __pyx_t_4;
  __Pyx_RefNannySetupContext("p_simple_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_first_statement = __pyx_optional_args->first_statement;
    }
  }

  /* "Cython/Compiler/Parsing.py":2035
 * def p_simple_statement(s, first_statement = 0):
 *     #print "p_simple_statement:", s.sy, s.systring ###
 *     if s.sy == 'global':             # <<<<<<<<<<<<<<
 *         node = p_global_statement(s)
 *     elif s.sy == 'nonlocal':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_global, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2035, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2036
 *     #print "p_simple_statement:", s.sy, s.systring ###
 *     if s.sy == 'global':
 *         node = p_global_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'nonlocal':
 *         node = p_nonlocal_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_global_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2036, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2035
 * def p_simple_statement(s, first_statement = 0):
 *     #print "p_simple_statement:", s.sy, s.systring ###
 *     if s.sy == 'global':             # <<<<<<<<<<<<<<
 *         node = p_global_statement(s)
 *     elif s.sy == 'nonlocal':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2037
 *     if s.sy == 'global':
 *         node = p_global_statement(s)
 *     elif s.sy == 'nonlocal':             # <<<<<<<<<<<<<<
 *         node = p_nonlocal_statement(s)
 *     elif s.sy == 'print':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_nonlocal, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2037, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2038
 *         node = p_global_statement(s)
 *     elif s.sy == 'nonlocal':
 *         node = p_nonlocal_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'print':
 *         node = p_print_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_nonlocal_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2038, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2037
 *     if s.sy == 'global':
 *         node = p_global_statement(s)
 *     elif s.sy == 'nonlocal':             # <<<<<<<<<<<<<<
 *         node = p_nonlocal_statement(s)
 *     elif s.sy == 'print':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2039
 *     elif s.sy == 'nonlocal':
 *         node = p_nonlocal_statement(s)
 *     elif s.sy == 'print':             # <<<<<<<<<<<<<<
 *         node = p_print_statement(s)
 *     elif s.sy == 'exec':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_print, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2039, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2040
 *         node = p_nonlocal_statement(s)
 *     elif s.sy == 'print':
 *         node = p_print_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'exec':
 *         node = p_exec_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_print_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2039
 *     elif s.sy == 'nonlocal':
 *         node = p_nonlocal_statement(s)
 *     elif s.sy == 'print':             # <<<<<<<<<<<<<<
 *         node = p_print_statement(s)
 *     elif s.sy == 'exec':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2041
 *     elif s.sy == 'print':
 *         node = p_print_statement(s)
 *     elif s.sy == 'exec':             # <<<<<<<<<<<<<<
 *         node = p_exec_statement(s)
 *     elif s.sy == 'del':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_exec, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2041, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2042
 *         node = p_print_statement(s)
 *     elif s.sy == 'exec':
 *         node = p_exec_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'del':
 *         node = p_del_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_exec_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2042, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2041
 *     elif s.sy == 'print':
 *         node = p_print_statement(s)
 *     elif s.sy == 'exec':             # <<<<<<<<<<<<<<
 *         node = p_exec_statement(s)
 *     elif s.sy == 'del':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2043
 *     elif s.sy == 'exec':
 *         node = p_exec_statement(s)
 *     elif s.sy == 'del':             # <<<<<<<<<<<<<<
 *         node = p_del_statement(s)
 *     elif s.sy == 'break':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_del, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2043, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2044
 *         node = p_exec_statement(s)
 *     elif s.sy == 'del':
 *         node = p_del_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'break':
 *         node = p_break_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_del_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2043
 *     elif s.sy == 'exec':
 *         node = p_exec_statement(s)
 *     elif s.sy == 'del':             # <<<<<<<<<<<<<<
 *         node = p_del_statement(s)
 *     elif s.sy == 'break':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2045
 *     elif s.sy == 'del':
 *         node = p_del_statement(s)
 *     elif s.sy == 'break':             # <<<<<<<<<<<<<<
 *         node = p_break_statement(s)
 *     elif s.sy == 'continue':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_break, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2045, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2046
 *         node = p_del_statement(s)
 *     elif s.sy == 'break':
 *         node = p_break_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'continue':
 *         node = p_continue_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_break_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2045
 *     elif s.sy == 'del':
 *         node = p_del_statement(s)
 *     elif s.sy == 'break':             # <<<<<<<<<<<<<<
 *         node = p_break_statement(s)
 *     elif s.sy == 'continue':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2047
 *     elif s.sy == 'break':
 *         node = p_break_statement(s)
 *     elif s.sy == 'continue':             # <<<<<<<<<<<<<<
 *         node = p_continue_statement(s)
 *     elif s.sy == 'return':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_continue, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2047, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2048
 *         node = p_break_statement(s)
 *     elif s.sy == 'continue':
 *         node = p_continue_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'return':
 *         node = p_return_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_continue_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2048, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2047
 *     elif s.sy == 'break':
 *         node = p_break_statement(s)
 *     elif s.sy == 'continue':             # <<<<<<<<<<<<<<
 *         node = p_continue_statement(s)
 *     elif s.sy == 'return':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2049
 *     elif s.sy == 'continue':
 *         node = p_continue_statement(s)
 *     elif s.sy == 'return':             # <<<<<<<<<<<<<<
 *         node = p_return_statement(s)
 *     elif s.sy == 'raise':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_return, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2049, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2050
 *         node = p_continue_statement(s)
 *     elif s.sy == 'return':
 *         node = p_return_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'raise':
 *         node = p_raise_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_return_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2050, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2049
 *     elif s.sy == 'continue':
 *         node = p_continue_statement(s)
 *     elif s.sy == 'return':             # <<<<<<<<<<<<<<
 *         node = p_return_statement(s)
 *     elif s.sy == 'raise':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2051
 *     elif s.sy == 'return':
 *         node = p_return_statement(s)
 *     elif s.sy == 'raise':             # <<<<<<<<<<<<<<
 *         node = p_raise_statement(s)
 *     elif s.sy in ('import', 'cimport'):
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_raise, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2051, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2052
 *         node = p_return_statement(s)
 *     elif s.sy == 'raise':
 *         node = p_raise_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy in ('import', 'cimport'):
 *         node = p_import_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_raise_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2051
 *     elif s.sy == 'return':
 *         node = p_return_statement(s)
 *     elif s.sy == 'raise':             # <<<<<<<<<<<<<<
 *         node = p_raise_statement(s)
 *     elif s.sy in ('import', 'cimport'):
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2053
 *     elif s.sy == 'raise':
 *         node = p_raise_statement(s)
 *     elif s.sy in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         node = p_import_statement(s)
 *     elif s.sy == 'from':
 */
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_2 = __pyx_v_s->sy;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2053, __pyx_L1_error)
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2053, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = (__pyx_t_1 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2054
 *         node = p_raise_statement(s)
 *     elif s.sy in ('import', 'cimport'):
 *         node = p_import_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'from':
 *         node = p_from_import_statement(s, first_statement = first_statement)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_import_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2053
 *     elif s.sy == 'raise':
 *         node = p_raise_statement(s)
 *     elif s.sy in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         node = p_import_statement(s)
 *     elif s.sy == 'from':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2055
 *     elif s.sy in ('import', 'cimport'):
 *         node = p_import_statement(s)
 *     elif s.sy == 'from':             # <<<<<<<<<<<<<<
 *         node = p_from_import_statement(s, first_statement = first_statement)
 *     elif s.sy == 'yield':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2055, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2056
 *         node = p_import_statement(s)
 *     elif s.sy == 'from':
 *         node = p_from_import_statement(s, first_statement = first_statement)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'yield':
 *         node = p_yield_statement(s)
 */
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.first_statement = __pyx_v_first_statement;
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_from_import_statement(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2056, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2055
 *     elif s.sy in ('import', 'cimport'):
 *         node = p_import_statement(s)
 *     elif s.sy == 'from':             # <<<<<<<<<<<<<<
 *         node = p_from_import_statement(s, first_statement = first_statement)
 *     elif s.sy == 'yield':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2057
 *     elif s.sy == 'from':
 *         node = p_from_import_statement(s, first_statement = first_statement)
 *     elif s.sy == 'yield':             # <<<<<<<<<<<<<<
 *         node = p_yield_statement(s)
 *     elif s.sy == 'assert':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2057, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2058
 *         node = p_from_import_statement(s, first_statement = first_statement)
 *     elif s.sy == 'yield':
 *         node = p_yield_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'assert':
 *         node = p_assert_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2057
 *     elif s.sy == 'from':
 *         node = p_from_import_statement(s, first_statement = first_statement)
 *     elif s.sy == 'yield':             # <<<<<<<<<<<<<<
 *         node = p_yield_statement(s)
 *     elif s.sy == 'assert':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2059
 *     elif s.sy == 'yield':
 *         node = p_yield_statement(s)
 *     elif s.sy == 'assert':             # <<<<<<<<<<<<<<
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_assert, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2059, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2060
 *         node = p_yield_statement(s)
 *     elif s.sy == 'assert':
 *         node = p_assert_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'pass':
 *         node = p_pass_statement(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_assert_statement(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2060, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2059
 *     elif s.sy == 'yield':
 *         node = p_yield_statement(s)
 *     elif s.sy == 'assert':             # <<<<<<<<<<<<<<
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2061
 *     elif s.sy == 'assert':
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':             # <<<<<<<<<<<<<<
 *         node = p_pass_statement(s)
 *     else:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2061, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2062
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':
 *         node = p_pass_statement(s)             # <<<<<<<<<<<<<<
 *     else:
 *         node = p_expression_or_assignment(s)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2062, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2061
 *     elif s.sy == 'assert':
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':             # <<<<<<<<<<<<<<
 *         node = p_pass_statement(s)
 *     else:
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2064
 *         node = p_pass_statement(s)
 *     else:
 *         node = p_expression_or_assignment(s)             # <<<<<<<<<<<<<<
 *     return node
 * 
 */
  /*else*/ {
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_expression_or_assignment(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2064, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2065
 *     else:
 *         node = p_expression_or_assignment(s)
 *     return node             # <<<<<<<<<<<<<<
 * 
 * def p_simple_statement_list(s, ctx, first_statement = 0):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_node);
  __pyx_r = __pyx_v_node;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2033
 *         error(pos, "Syntax error in template function declaration")
 * 
 * def p_simple_statement(s, first_statement = 0):             # <<<<<<<<<<<<<<
 *     #print "p_simple_statement:", s.sy, s.systring ###
 *     if s.sy == 'global':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_simple_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2067
 *     return node
 * 
 * def p_simple_statement_list(s, ctx, first_statement = 0):             # <<<<<<<<<<<<<<
 *     # Parse a series of simple statements on one line
 *     # separated by semicolons.
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, CYTHON_UNUSED PyObject *__pyx_v_ctx, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement_list *__pyx_optional_args) {
  int __pyx_v_first_statement = ((int)0);
  PyObject *__pyx_v_stat = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_stats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_10;
  __Pyx_RefNannySetupContext("p_simple_statement_list", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_first_statement = __pyx_optional_args->first_statement;
    }
  }

  /* "Cython/Compiler/Parsing.py":2070
 *     # Parse a series of simple statements on one line
 *     # separated by semicolons.
 *     stat = p_simple_statement(s, first_statement = first_statement)             # <<<<<<<<<<<<<<
 *     pos = stat.pos
 *     stats = []
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.first_statement = __pyx_v_first_statement;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stat = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2071
 *     # separated by semicolons.
 *     stat = p_simple_statement(s, first_statement = first_statement)
 *     pos = stat.pos             # <<<<<<<<<<<<<<
 *     stats = []
 *     if not isinstance(stat, Nodes.PassStatNode):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_stat, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2072
 *     stat = p_simple_statement(s, first_statement = first_statement)
 *     pos = stat.pos
 *     stats = []             # <<<<<<<<<<<<<<
 *     if not isinstance(stat, Nodes.PassStatNode):
 *         stats.append(stat)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stats = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2073
 *     pos = stat.pos
 *     stats = []
 *     if not isinstance(stat, Nodes.PassStatNode):             # <<<<<<<<<<<<<<
 *         stats.append(stat)
 *     while s.sy == ';':
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_stat, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 2073, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2074
 *     stats = []
 *     if not isinstance(stat, Nodes.PassStatNode):
 *         stats.append(stat)             # <<<<<<<<<<<<<<
 *     while s.sy == ';':
 *         #print "p_simple_statement_list: maybe more to follow" ###
 */
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_stats, __pyx_v_stat); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 2074, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2073
 *     pos = stat.pos
 *     stats = []
 *     if not isinstance(stat, Nodes.PassStatNode):             # <<<<<<<<<<<<<<
 *         stats.append(stat)
 *     while s.sy == ';':
 */
  }

  /* "Cython/Compiler/Parsing.py":2075
 *     if not isinstance(stat, Nodes.PassStatNode):
 *         stats.append(stat)
 *     while s.sy == ';':             # <<<<<<<<<<<<<<
 *         #print "p_simple_statement_list: maybe more to follow" ###
 *         s.next()
 */
  while (1) {
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__96, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2075, __pyx_L1_error)
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":2077
 *     while s.sy == ';':
 *         #print "p_simple_statement_list: maybe more to follow" ###
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy in ('NEWLINE', 'EOF'):
 *             break
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2078
 *         #print "p_simple_statement_list: maybe more to follow" ###
 *         s.next()
 *         if s.sy in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *             break
 *         stat = p_simple_statement(s, first_statement = first_statement)
 */
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_1 = __pyx_v_s->sy;
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2078, __pyx_L1_error)
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2078, __pyx_L1_error)
    __pyx_t_4 = __pyx_t_3;
    __pyx_L7_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_4 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2079
 *         s.next()
 *         if s.sy in ('NEWLINE', 'EOF'):
 *             break             # <<<<<<<<<<<<<<
 *         stat = p_simple_statement(s, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):
 */
      goto __pyx_L5_break;

      /* "Cython/Compiler/Parsing.py":2078
 *         #print "p_simple_statement_list: maybe more to follow" ###
 *         s.next()
 *         if s.sy in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *             break
 *         stat = p_simple_statement(s, first_statement = first_statement)
 */
    }

    /* "Cython/Compiler/Parsing.py":2080
 *         if s.sy in ('NEWLINE', 'EOF'):
 *             break
 *         stat = p_simple_statement(s, first_statement = first_statement)             # <<<<<<<<<<<<<<
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue
 */
    __pyx_t_2.__pyx_n = 1;
    __pyx_t_2.first_statement = __pyx_v_first_statement;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2080, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2081
 *             break
 *         stat = p_simple_statement(s, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):             # <<<<<<<<<<<<<<
 *             continue
 *         stats.append(stat)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_stat, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 2081, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2082
 *         stat = p_simple_statement(s, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue             # <<<<<<<<<<<<<<
 *         stats.append(stat)
 *         first_statement = False
 */
      goto __pyx_L4_continue;

      /* "Cython/Compiler/Parsing.py":2081
 *             break
 *         stat = p_simple_statement(s, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):             # <<<<<<<<<<<<<<
 *             continue
 *         stats.append(stat)
 */
    }

    /* "Cython/Compiler/Parsing.py":2083
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue
 *         stats.append(stat)             # <<<<<<<<<<<<<<
 *         first_statement = False
 * 
 */
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_stats, __pyx_v_stat); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 2083, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2084
 *             continue
 *         stats.append(stat)
 *         first_statement = False             # <<<<<<<<<<<<<<
 * 
 *     if not stats:
 */
    __pyx_v_first_statement = 0;
    __pyx_L4_continue:;
  }
  __pyx_L5_break:;

  /* "Cython/Compiler/Parsing.py":2086
 *         first_statement = False
 * 
 *     if not stats:             # <<<<<<<<<<<<<<
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 */
  __pyx_t_4 = (__pyx_v_stats != Py_None) && (PyList_GET_SIZE(__pyx_v_stats) != 0);
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2087
 * 
 *     if not stats:
 *         stat = Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     elif len(stats) == 1:
 *         stat = stats[0]
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2087, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2087, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2087, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2087, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_pos);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2087, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2086
 *         first_statement = False
 * 
 *     if not stats:             # <<<<<<<<<<<<<<
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 */
    goto __pyx_L10;
  }

  /* "Cython/Compiler/Parsing.py":2088
 *     if not stats:
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:             # <<<<<<<<<<<<<<
 *         stat = stats[0]
 *     else:
 */
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_stats); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2088, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 == 1) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2089
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 *         stat = stats[0]             # <<<<<<<<<<<<<<
 *     else:
 *         stat = Nodes.StatListNode(pos, stats = stats)
 */
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2089, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2088
 *     if not stats:
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:             # <<<<<<<<<<<<<<
 *         stat = stats[0]
 *     else:
 */
    goto __pyx_L10;
  }

  /* "Cython/Compiler/Parsing.py":2091
 *         stat = stats[0]
 *     else:
 *         stat = Nodes.StatListNode(pos, stats = stats)             # <<<<<<<<<<<<<<
 *     s.expect_newline("Syntax error in simple statement list")
 *     return stat
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_stats, __pyx_v_stats) < 0) __PYX_ERR(0, 2091, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_7);
    __pyx_t_7 = 0;
  }
  __pyx_L10:;

  /* "Cython/Compiler/Parsing.py":2092
 *     else:
 *         stat = Nodes.StatListNode(pos, stats = stats)
 *     s.expect_newline("Syntax error in simple statement list")             # <<<<<<<<<<<<<<
 *     return stat
 * 
 */
  __pyx_t_10.__pyx_n = 1;
  __pyx_t_10.message = __pyx_kp_u_Syntax_error_in_simple_statement;
  __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":2093
 *         stat = Nodes.StatListNode(pos, stats = stats)
 *     s.expect_newline("Syntax error in simple statement list")
 *     return stat             # <<<<<<<<<<<<<<
 * 
 * def p_compile_time_expr(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stat);
  __pyx_r = __pyx_v_stat;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2067
 *     return node
 * 
 * def p_simple_statement_list(s, ctx, first_statement = 0):             # <<<<<<<<<<<<<<
 *     # Parse a series of simple statements on one line
 *     # separated by semicolons.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_simple_statement_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stat);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_stats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2095
 *     return stat
 * 
 * def p_compile_time_expr(s):             # <<<<<<<<<<<<<<
 *     old = s.compile_time_expr
 *     s.compile_time_expr = 1
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_compile_time_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  int __pyx_v_old;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_compile_time_expr", 0);

  /* "Cython/Compiler/Parsing.py":2096
 * 
 * def p_compile_time_expr(s):
 *     old = s.compile_time_expr             # <<<<<<<<<<<<<<
 *     s.compile_time_expr = 1
 *     expr = p_testlist(s)
 */
  __pyx_t_1 = __pyx_v_s->compile_time_expr;
  __pyx_v_old = __pyx_t_1;

  /* "Cython/Compiler/Parsing.py":2097
 * def p_compile_time_expr(s):
 *     old = s.compile_time_expr
 *     s.compile_time_expr = 1             # <<<<<<<<<<<<<<
 *     expr = p_testlist(s)
 *     s.compile_time_expr = old
 */
  __pyx_v_s->compile_time_expr = 1;

  /* "Cython/Compiler/Parsing.py":2098
 *     old = s.compile_time_expr
 *     s.compile_time_expr = 1
 *     expr = p_testlist(s)             # <<<<<<<<<<<<<<
 *     s.compile_time_expr = old
 *     return expr
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_expr = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2099
 *     s.compile_time_expr = 1
 *     expr = p_testlist(s)
 *     s.compile_time_expr = old             # <<<<<<<<<<<<<<
 *     return expr
 * 
 */
  __pyx_v_s->compile_time_expr = __pyx_v_old;

  /* "Cython/Compiler/Parsing.py":2100
 *     expr = p_testlist(s)
 *     s.compile_time_expr = old
 *     return expr             # <<<<<<<<<<<<<<
 * 
 * def p_DEF_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_expr);
  __pyx_r = __pyx_v_expr;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2095
 *     return stat
 * 
 * def p_compile_time_expr(s):             # <<<<<<<<<<<<<<
 *     old = s.compile_time_expr
 *     s.compile_time_expr = 1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_compile_time_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2102
 *     return expr
 * 
 * def p_DEF_statement(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     denv = s.compile_time_env
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_DEF_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *__pyx_v_denv = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_6;
  __Pyx_RefNannySetupContext("p_DEF_statement", 0);

  /* "Cython/Compiler/Parsing.py":2103
 * 
 * def p_DEF_statement(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     denv = s.compile_time_env
 *     s.next() # 'DEF'
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2104
 * def p_DEF_statement(s):
 *     pos = s.position()
 *     denv = s.compile_time_env             # <<<<<<<<<<<<<<
 *     s.next() # 'DEF'
 *     name = p_ident(s)
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_s->compile_time_env);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_denv = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2105
 *     pos = s.position()
 *     denv = s.compile_time_env
 *     s.next() # 'DEF'             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     s.expect('=')
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2106
 *     denv = s.compile_time_env
 *     s.next() # 'DEF'
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     s.expect('=')
 *     expr = p_compile_time_expr(s)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2107
 *     s.next() # 'DEF'
 *     name = p_ident(s)
 *     s.expect('=')             # <<<<<<<<<<<<<<
 *     expr = p_compile_time_expr(s)
 *     value = expr.compile_time_value(denv)
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__40, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2107, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2108
 *     name = p_ident(s)
 *     s.expect('=')
 *     expr = p_compile_time_expr(s)             # <<<<<<<<<<<<<<
 *     value = expr.compile_time_value(denv)
 *     #print "p_DEF_statement: %s = %r" % (name, value) ###
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_compile_time_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2109
 *     s.expect('=')
 *     expr = p_compile_time_expr(s)
 *     value = expr.compile_time_value(denv)             # <<<<<<<<<<<<<<
 *     #print "p_DEF_statement: %s = %r" % (name, value) ###
 *     denv.declare(name, value)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_compile_time_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (!__pyx_t_4) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_denv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, ((PyObject *)__pyx_v_denv)};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, ((PyObject *)__pyx_v_denv)};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
      __Pyx_INCREF(((PyObject *)__pyx_v_denv));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_denv));
      PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_denv));
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_value = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2111
 *     value = expr.compile_time_value(denv)
 *     #print "p_DEF_statement: %s = %r" % (name, value) ###
 *     denv.declare(name, value)             # <<<<<<<<<<<<<<
 *     s.expect_newline("Expected a newline", ignore_semicolon=True)
 *     return Nodes.PassStatNode(pos)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_CompileTimeScope *)__pyx_v_denv->__pyx_vtab)->declare(__pyx_v_denv, __pyx_v_name, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2112
 *     #print "p_DEF_statement: %s = %r" % (name, value) ###
 *     denv.declare(name, value)
 *     s.expect_newline("Expected a newline", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *     return Nodes.PassStatNode(pos)
 * 
 */
  __pyx_t_6.__pyx_n = 2;
  __pyx_t_6.message = __pyx_kp_u_Expected_a_newline;
  __pyx_t_6.ignore_semicolon = 1;
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2113
 *     denv.declare(name, value)
 *     s.expect_newline("Expected a newline", ignore_semicolon=True)
 *     return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_IF_statement(s, ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (!__pyx_t_5) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2113, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_pos};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2113, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_pos);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2102
 *     return expr
 * 
 * def p_DEF_statement(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     denv = s.compile_time_env
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_DEF_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF((PyObject *)__pyx_v_denv);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2115
 *     return Nodes.PassStatNode(pos)
 * 
 * def p_IF_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     saved_eval = s.compile_time_eval
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_IF_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_pos = NULL;
  int __pyx_v_saved_eval;
  PyObject *__pyx_v_current_eval = NULL;
  struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *__pyx_v_denv = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_expr = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite __pyx_t_7;
  __Pyx_RefNannySetupContext("p_IF_statement", 0);

  /* "Cython/Compiler/Parsing.py":2116
 * 
 * def p_IF_statement(s, ctx):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     saved_eval = s.compile_time_eval
 *     current_eval = saved_eval
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2117
 * def p_IF_statement(s, ctx):
 *     pos = s.position()
 *     saved_eval = s.compile_time_eval             # <<<<<<<<<<<<<<
 *     current_eval = saved_eval
 *     denv = s.compile_time_env
 */
  __pyx_t_2 = __pyx_v_s->compile_time_eval;
  __pyx_v_saved_eval = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":2118
 *     pos = s.position()
 *     saved_eval = s.compile_time_eval
 *     current_eval = saved_eval             # <<<<<<<<<<<<<<
 *     denv = s.compile_time_env
 *     result = None
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_saved_eval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_current_eval = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2119
 *     saved_eval = s.compile_time_eval
 *     current_eval = saved_eval
 *     denv = s.compile_time_env             # <<<<<<<<<<<<<<
 *     result = None
 *     while 1:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_s->compile_time_env);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_denv = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2120
 *     current_eval = saved_eval
 *     denv = s.compile_time_env
 *     result = None             # <<<<<<<<<<<<<<
 *     while 1:
 *         s.next() # 'IF' or 'ELIF'
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_result = Py_None;

  /* "Cython/Compiler/Parsing.py":2121
 *     denv = s.compile_time_env
 *     result = None
 *     while 1:             # <<<<<<<<<<<<<<
 *         s.next() # 'IF' or 'ELIF'
 *         expr = p_compile_time_expr(s)
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":2122
 *     result = None
 *     while 1:
 *         s.next() # 'IF' or 'ELIF'             # <<<<<<<<<<<<<<
 *         expr = p_compile_time_expr(s)
 *         s.compile_time_eval = current_eval and bool(expr.compile_time_value(denv))
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2123
 *     while 1:
 *         s.next() # 'IF' or 'ELIF'
 *         expr = p_compile_time_expr(s)             # <<<<<<<<<<<<<<
 *         s.compile_time_eval = current_eval and bool(expr.compile_time_value(denv))
 *         body = p_suite(s, ctx)
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_compile_time_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2124
 *         s.next() # 'IF' or 'ELIF'
 *         expr = p_compile_time_expr(s)
 *         s.compile_time_eval = current_eval and bool(expr.compile_time_value(denv))             # <<<<<<<<<<<<<<
 *         body = p_suite(s, ctx)
 *         if s.compile_time_eval:
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_current_eval); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2124, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_compile_time_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_5) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_denv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, ((PyObject *)__pyx_v_denv)};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2124, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, ((PyObject *)__pyx_v_denv)};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2124, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2124, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
        __Pyx_INCREF(((PyObject *)__pyx_v_denv));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_denv));
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, ((PyObject *)__pyx_v_denv));
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2124, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = ((!(!__pyx_t_3)) != 0);
    __pyx_L5_bool_binop_done:;
    __pyx_v_s->compile_time_eval = __pyx_t_2;

    /* "Cython/Compiler/Parsing.py":2125
 *         expr = p_compile_time_expr(s)
 *         s.compile_time_eval = current_eval and bool(expr.compile_time_value(denv))
 *         body = p_suite(s, ctx)             # <<<<<<<<<<<<<<
 *         if s.compile_time_eval:
 *             result = body
 */
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.ctx = __pyx_v_ctx;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_body, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2126
 *         s.compile_time_eval = current_eval and bool(expr.compile_time_value(denv))
 *         body = p_suite(s, ctx)
 *         if s.compile_time_eval:             # <<<<<<<<<<<<<<
 *             result = body
 *             current_eval = 0
 */
    __pyx_t_2 = (__pyx_v_s->compile_time_eval != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2127
 *         body = p_suite(s, ctx)
 *         if s.compile_time_eval:
 *             result = body             # <<<<<<<<<<<<<<
 *             current_eval = 0
 *         if s.sy != 'ELIF':
 */
      __Pyx_INCREF(__pyx_v_body);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_v_body);

      /* "Cython/Compiler/Parsing.py":2128
 *         if s.compile_time_eval:
 *             result = body
 *             current_eval = 0             # <<<<<<<<<<<<<<
 *         if s.sy != 'ELIF':
 *             break
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF_SET(__pyx_v_current_eval, __pyx_int_0);

      /* "Cython/Compiler/Parsing.py":2126
 *         s.compile_time_eval = current_eval and bool(expr.compile_time_value(denv))
 *         body = p_suite(s, ctx)
 *         if s.compile_time_eval:             # <<<<<<<<<<<<<<
 *             result = body
 *             current_eval = 0
 */
    }

    /* "Cython/Compiler/Parsing.py":2129
 *             result = body
 *             current_eval = 0
 *         if s.sy != 'ELIF':             # <<<<<<<<<<<<<<
 *             break
 *     if s.sy == 'ELSE':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_ELIF, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2129, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2130
 *             current_eval = 0
 *         if s.sy != 'ELIF':
 *             break             # <<<<<<<<<<<<<<
 *     if s.sy == 'ELSE':
 *         s.next()
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":2129
 *             result = body
 *             current_eval = 0
 *         if s.sy != 'ELIF':             # <<<<<<<<<<<<<<
 *             break
 *     if s.sy == 'ELSE':
 */
    }
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":2131
 *         if s.sy != 'ELIF':
 *             break
 *     if s.sy == 'ELSE':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.compile_time_eval = current_eval
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_ELSE, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2131, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2132
 *             break
 *     if s.sy == 'ELSE':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.compile_time_eval = current_eval
 *         body = p_suite(s, ctx)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2133
 *     if s.sy == 'ELSE':
 *         s.next()
 *         s.compile_time_eval = current_eval             # <<<<<<<<<<<<<<
 *         body = p_suite(s, ctx)
 *         if current_eval:
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_eval); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2133, __pyx_L1_error)
    __pyx_v_s->compile_time_eval = __pyx_t_2;

    /* "Cython/Compiler/Parsing.py":2134
 *         s.next()
 *         s.compile_time_eval = current_eval
 *         body = p_suite(s, ctx)             # <<<<<<<<<<<<<<
 *         if current_eval:
 *             result = body
 */
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.ctx = __pyx_v_ctx;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_body, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2135
 *         s.compile_time_eval = current_eval
 *         body = p_suite(s, ctx)
 *         if current_eval:             # <<<<<<<<<<<<<<
 *             result = body
 *     if not result:
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_eval); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2135, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2136
 *         body = p_suite(s, ctx)
 *         if current_eval:
 *             result = body             # <<<<<<<<<<<<<<
 *     if not result:
 *         result = Nodes.PassStatNode(pos)
 */
      __Pyx_INCREF(__pyx_v_body);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_v_body);

      /* "Cython/Compiler/Parsing.py":2135
 *         s.compile_time_eval = current_eval
 *         body = p_suite(s, ctx)
 *         if current_eval:             # <<<<<<<<<<<<<<
 *             result = body
 *     if not result:
 */
    }

    /* "Cython/Compiler/Parsing.py":2131
 *         if s.sy != 'ELIF':
 *             break
 *     if s.sy == 'ELSE':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.compile_time_eval = current_eval
 */
  }

  /* "Cython/Compiler/Parsing.py":2137
 *         if current_eval:
 *             result = body
 *     if not result:             # <<<<<<<<<<<<<<
 *         result = Nodes.PassStatNode(pos)
 *     s.compile_time_eval = saved_eval
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2137, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2138
 *             result = body
 *     if not result:
 *         result = Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     s.compile_time_eval = saved_eval
 *     return result
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_6) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2138, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2138, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2138, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_pos);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2138, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2137
 *         if current_eval:
 *             result = body
 *     if not result:             # <<<<<<<<<<<<<<
 *         result = Nodes.PassStatNode(pos)
 *     s.compile_time_eval = saved_eval
 */
  }

  /* "Cython/Compiler/Parsing.py":2139
 *     if not result:
 *         result = Nodes.PassStatNode(pos)
 *     s.compile_time_eval = saved_eval             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  __pyx_v_s->compile_time_eval = __pyx_v_saved_eval;

  /* "Cython/Compiler/Parsing.py":2140
 *         result = Nodes.PassStatNode(pos)
 *     s.compile_time_eval = saved_eval
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_statement(s, ctx, first_statement = 0):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2115
 *     return Nodes.PassStatNode(pos)
 * 
 * def p_IF_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     saved_eval = s.compile_time_eval
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_IF_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_current_eval);
  __Pyx_XDECREF((PyObject *)__pyx_v_denv);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_expr);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2142
 *     return result
 * 
 * def p_statement(s, ctx, first_statement = 0):             # <<<<<<<<<<<<<<
 *     cdef_flag = ctx.cdef_flag
 *     decorators = None
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement *__pyx_optional_args) {
  int __pyx_v_first_statement = ((int)0);
  PyObject *__pyx_v_cdef_flag = NULL;
  PyObject *__pyx_v_decorators = NULL;
  long __pyx_v_overridable;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_v_tup = NULL;
  PyObject *__pyx_v_ident_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_pass_statement __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement __pyx_t_9;
  int __pyx_t_10;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement_list __pyx_t_11;
  __Pyx_RefNannySetupContext("p_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_first_statement = __pyx_optional_args->first_statement;
    }
  }

  /* "Cython/Compiler/Parsing.py":2143
 * 
 * def p_statement(s, ctx, first_statement = 0):
 *     cdef_flag = ctx.cdef_flag             # <<<<<<<<<<<<<<
 *     decorators = None
 *     if s.sy == 'ctypedef':
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_cdef_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cdef_flag = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2144
 * def p_statement(s, ctx, first_statement = 0):
 *     cdef_flag = ctx.cdef_flag
 *     decorators = None             # <<<<<<<<<<<<<<
 *     if s.sy == 'ctypedef':
 *         if ctx.level not in ('module', 'module_pxd'):
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_decorators = Py_None;

  /* "Cython/Compiler/Parsing.py":2145
 *     cdef_flag = ctx.cdef_flag
 *     decorators = None
 *     if s.sy == 'ctypedef':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd'):
 *             s.error("ctypedef statement not allowed here")
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_ctypedef, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2145, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2146
 *     decorators = None
 *     if s.sy == 'ctypedef':
 *         if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *             s.error("ctypedef statement not allowed here")
 *         #if ctx.api:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2146, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2146, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_3;
    __pyx_L5_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2147
 *     if s.sy == 'ctypedef':
 *         if ctx.level not in ('module', 'module_pxd'):
 *             s.error("ctypedef statement not allowed here")             # <<<<<<<<<<<<<<
 *         #if ctx.api:
 *         #    error(s.position(), "'api' not allowed with 'ctypedef'")
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__97, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2146
 *     decorators = None
 *     if s.sy == 'ctypedef':
 *         if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *             s.error("ctypedef statement not allowed here")
 *         #if ctx.api:
 */
    }

    /* "Cython/Compiler/Parsing.py":2150
 *         #if ctx.api:
 *         #    error(s.position(), "'api' not allowed with 'ctypedef'")
 *         return p_ctypedef_statement(s, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'DEF':
 *         return p_DEF_statement(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2145
 *     cdef_flag = ctx.cdef_flag
 *     decorators = None
 *     if s.sy == 'ctypedef':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd'):
 *             s.error("ctypedef statement not allowed here")
 */
  }

  /* "Cython/Compiler/Parsing.py":2151
 *         #    error(s.position(), "'api' not allowed with 'ctypedef'")
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'DEF':             # <<<<<<<<<<<<<<
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DEF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2151, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2152
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'DEF':
 *         return p_DEF_statement(s)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IF':
 *         return p_IF_statement(s, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_DEF_statement(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2151
 *         #    error(s.position(), "'api' not allowed with 'ctypedef'")
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'DEF':             # <<<<<<<<<<<<<<
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':
 */
  }

  /* "Cython/Compiler/Parsing.py":2153
 *     elif s.sy == 'DEF':
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':             # <<<<<<<<<<<<<<
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == '@':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2153, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2154
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':
 *         return p_IF_statement(s, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == '@':
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_IF_statement(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2153
 *     elif s.sy == 'DEF':
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':             # <<<<<<<<<<<<<<
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == '@':
 */
  }

  /* "Cython/Compiler/Parsing.py":2155
 *     elif s.sy == 'IF':
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == '@':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 *             s.error('decorator not allowed here')
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__21, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2155, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2156
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == '@':
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):             # <<<<<<<<<<<<<<
 *             s.error('decorator not allowed here')
 *         s.level = ctx.level
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2156, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_class_2, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_c_class, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_function, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_property, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_other, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2156, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_2;
    __pyx_L8_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2157
 *     elif s.sy == '@':
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 *             s.error('decorator not allowed here')             # <<<<<<<<<<<<<<
 *         s.level = ctx.level
 *         decorators = p_decorators(s)
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2157, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__98, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2157, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2156
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == '@':
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):             # <<<<<<<<<<<<<<
 *             s.error('decorator not allowed here')
 *         s.level = ctx.level
 */
    }

    /* "Cython/Compiler/Parsing.py":2158
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 *             s.error('decorator not allowed here')
 *         s.level = ctx.level             # <<<<<<<<<<<<<<
 *         decorators = p_decorators(s)
 *         if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class'):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_s->__pyx_base.level);
    __Pyx_DECREF(__pyx_v_s->__pyx_base.level);
    __pyx_v_s->__pyx_base.level = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2159
 *             s.error('decorator not allowed here')
 *         s.level = ctx.level
 *         decorators = p_decorators(s)             # <<<<<<<<<<<<<<
 *         if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class'):
 *             if s.sy == 'IDENT' and s.systring == 'async':
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_decorators(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_decorators, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2160
 *         s.level = ctx.level
 *         decorators = p_decorators(s)
 *         if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class'):             # <<<<<<<<<<<<<<
 *             if s.sy == 'IDENT' and s.systring == 'async':
 *                 pass  # handled below
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_allow_struct_enum_decorator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2160, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = ((!__pyx_t_3) != 0);
    if (__pyx_t_5) {
    } else {
      __pyx_t_2 = __pyx_t_5;
      goto __pyx_L17_bool_binop_done;
    }
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_1 = __pyx_v_s->sy;
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_def, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2160, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_5 = __pyx_t_3;
      goto __pyx_L19_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cdef, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2160, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_5 = __pyx_t_3;
      goto __pyx_L19_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cpdef, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2160, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_5 = __pyx_t_3;
      goto __pyx_L19_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_class_2, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2160, __pyx_L1_error)
    __pyx_t_5 = __pyx_t_3;
    __pyx_L19_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2161
 *         decorators = p_decorators(s)
 *         if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class'):
 *             if s.sy == 'IDENT' and s.systring == 'async':             # <<<<<<<<<<<<<<
 *                 pass  # handled below
 *             else:
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2161, __pyx_L1_error)
      if (__pyx_t_3) {
      } else {
        __pyx_t_2 = __pyx_t_3;
        goto __pyx_L24_bool_binop_done;
      }
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_async, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2161, __pyx_L1_error)
      __pyx_t_2 = __pyx_t_3;
      __pyx_L24_bool_binop_done:;
      if (__pyx_t_2) {
        goto __pyx_L23;
      }

      /* "Cython/Compiler/Parsing.py":2164
 *                 pass  # handled below
 *             else:
 *                 s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *     elif s.sy == 'pass' and cdef_flag:
 *         # empty cdef block
 */
      /*else*/ {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2164, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__99, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2164, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __pyx_L23:;

      /* "Cython/Compiler/Parsing.py":2160
 *         s.level = ctx.level
 *         decorators = p_decorators(s)
 *         if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class'):             # <<<<<<<<<<<<<<
 *             if s.sy == 'IDENT' and s.systring == 'async':
 *                 pass  # handled below
 */
    }

    /* "Cython/Compiler/Parsing.py":2155
 *     elif s.sy == 'IF':
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == '@':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 *             s.error('decorator not allowed here')
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2165
 *             else:
 *                 s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'pass' and cdef_flag:             # <<<<<<<<<<<<<<
 *         # empty cdef block
 *         return p_pass_statement(s, with_newline=1)
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2165, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L26_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_cdef_flag); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2165, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L26_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2167
 *     elif s.sy == 'pass' and cdef_flag:
 *         # empty cdef block
 *         return p_pass_statement(s, with_newline=1)             # <<<<<<<<<<<<<<
 * 
 *     overridable = 0
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6.__pyx_n = 1;
    __pyx_t_6.with_newline = 1;
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2165
 *             else:
 *                 s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'pass' and cdef_flag:             # <<<<<<<<<<<<<<
 *         # empty cdef block
 *         return p_pass_statement(s, with_newline=1)
 */
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2169
 *         return p_pass_statement(s, with_newline=1)
 * 
 *     overridable = 0             # <<<<<<<<<<<<<<
 *     if s.sy == 'cdef':
 *         cdef_flag = 1
 */
  __pyx_v_overridable = 0;

  /* "Cython/Compiler/Parsing.py":2170
 * 
 *     overridable = 0
 *     if s.sy == 'cdef':             # <<<<<<<<<<<<<<
 *         cdef_flag = 1
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_cdef, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2170, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2171
 *     overridable = 0
 *     if s.sy == 'cdef':
 *         cdef_flag = 1             # <<<<<<<<<<<<<<
 *         s.next()
 *     elif s.sy == 'cpdef':
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF_SET(__pyx_v_cdef_flag, __pyx_int_1);

    /* "Cython/Compiler/Parsing.py":2172
 *     if s.sy == 'cdef':
 *         cdef_flag = 1
 *         s.next()             # <<<<<<<<<<<<<<
 *     elif s.sy == 'cpdef':
 *         cdef_flag = 1
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2170
 * 
 *     overridable = 0
 *     if s.sy == 'cdef':             # <<<<<<<<<<<<<<
 *         cdef_flag = 1
 *         s.next()
 */
    goto __pyx_L28;
  }

  /* "Cython/Compiler/Parsing.py":2173
 *         cdef_flag = 1
 *         s.next()
 *     elif s.sy == 'cpdef':             # <<<<<<<<<<<<<<
 *         cdef_flag = 1
 *         overridable = 1
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_cpdef, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2173, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2174
 *         s.next()
 *     elif s.sy == 'cpdef':
 *         cdef_flag = 1             # <<<<<<<<<<<<<<
 *         overridable = 1
 *         s.next()
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF_SET(__pyx_v_cdef_flag, __pyx_int_1);

    /* "Cython/Compiler/Parsing.py":2175
 *     elif s.sy == 'cpdef':
 *         cdef_flag = 1
 *         overridable = 1             # <<<<<<<<<<<<<<
 *         s.next()
 *     if cdef_flag:
 */
    __pyx_v_overridable = 1;

    /* "Cython/Compiler/Parsing.py":2176
 *         cdef_flag = 1
 *         overridable = 1
 *         s.next()             # <<<<<<<<<<<<<<
 *     if cdef_flag:
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2173
 *         cdef_flag = 1
 *         s.next()
 *     elif s.sy == 'cpdef':             # <<<<<<<<<<<<<<
 *         cdef_flag = 1
 *         overridable = 1
 */
  }
  __pyx_L28:;

  /* "Cython/Compiler/Parsing.py":2177
 *         overridable = 1
 *         s.next()
 *     if cdef_flag:             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):
 *             s.error('cdef statement not allowed here')
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_cdef_flag); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2177, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2178
 *         s.next()
 *     if cdef_flag:
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):             # <<<<<<<<<<<<<<
 *             s.error('cdef statement not allowed here')
 *         s.level = ctx.level
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2178, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L31_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2178, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L31_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_function, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2178, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L31_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_c_class, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2178, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L31_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2178, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_3;
    __pyx_L31_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2179
 *     if cdef_flag:
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):
 *             s.error('cdef statement not allowed here')             # <<<<<<<<<<<<<<
 *         s.level = ctx.level
 *         node = p_cdef_statement(s, ctx(overridable=overridable))
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__100, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2178
 *         s.next()
 *     if cdef_flag:
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):             # <<<<<<<<<<<<<<
 *             s.error('cdef statement not allowed here')
 *         s.level = ctx.level
 */
    }

    /* "Cython/Compiler/Parsing.py":2180
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):
 *             s.error('cdef statement not allowed here')
 *         s.level = ctx.level             # <<<<<<<<<<<<<<
 *         node = p_cdef_statement(s, ctx(overridable=overridable))
 *         if decorators is not None:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_s->__pyx_base.level);
    __Pyx_DECREF(__pyx_v_s->__pyx_base.level);
    __pyx_v_s->__pyx_base.level = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2181
 *             s.error('cdef statement not allowed here')
 *         s.level = ctx.level
 *         node = p_cdef_statement(s, ctx(overridable=overridable))             # <<<<<<<<<<<<<<
 *         if decorators is not None:
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)
 */
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_overridable); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_overridable, __pyx_t_4) < 0) __PYX_ERR(0, 2181, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_cdef_statement(__pyx_v_s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2182
 *         s.level = ctx.level
 *         node = p_cdef_statement(s, ctx(overridable=overridable))
 *         if decorators is not None:             # <<<<<<<<<<<<<<
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)
 *             if ctx.allow_struct_enum_decorator:
 */
    __pyx_t_3 = (__pyx_v_decorators != Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2183
 *         node = p_cdef_statement(s, ctx(overridable=overridable))
 *         if decorators is not None:
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)             # <<<<<<<<<<<<<<
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CFuncDefNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CVarDefNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2183, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CClassDefNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2183, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2183, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7);
      __pyx_t_1 = 0;
      __pyx_t_4 = 0;
      __pyx_t_7 = 0;
      __pyx_v_tup = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":2184
 *         if decorators is not None:
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)
 *             if ctx.allow_struct_enum_decorator:             # <<<<<<<<<<<<<<
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 *             if not isinstance(node, tup):
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_allow_struct_enum_decorator); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2184, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2185
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)             # <<<<<<<<<<<<<<
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CStructOrUnionDefNode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2185, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CEnumDefNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2185, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2185, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7);
        __pyx_t_8 = 0;
        __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_tup, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2185, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF_SET(__pyx_v_tup, ((PyObject*)__pyx_t_7));
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2184
 *         if decorators is not None:
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)
 *             if ctx.allow_struct_enum_decorator:             # <<<<<<<<<<<<<<
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 *             if not isinstance(node, tup):
 */
      }

      /* "Cython/Compiler/Parsing.py":2186
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 *             if not isinstance(node, tup):             # <<<<<<<<<<<<<<
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators
 */
      __pyx_t_2 = PyObject_IsInstance(__pyx_v_node, __pyx_v_tup); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2187
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *             node.decorators = decorators
 *         return node
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2187, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__101, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2187, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2186
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 *             if not isinstance(node, tup):             # <<<<<<<<<<<<<<
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators
 */
      }

      /* "Cython/Compiler/Parsing.py":2188
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators             # <<<<<<<<<<<<<<
 *         return node
 *     else:
 */
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_decorators, __pyx_v_decorators) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":2182
 *         s.level = ctx.level
 *         node = p_cdef_statement(s, ctx(overridable=overridable))
 *         if decorators is not None:             # <<<<<<<<<<<<<<
 *             tup = (Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode)
 *             if ctx.allow_struct_enum_decorator:
 */
    }

    /* "Cython/Compiler/Parsing.py":2189
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators
 *         return node             # <<<<<<<<<<<<<<
 *     else:
 *         if ctx.api:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_node);
    __pyx_r = __pyx_v_node;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2177
 *         overridable = 1
 *         s.next()
 *     if cdef_flag:             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):
 *             s.error('cdef statement not allowed here')
 */
  }

  /* "Cython/Compiler/Parsing.py":2191
 *         return node
 *     else:
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         elif s.sy == 'def':
 */
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2191, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2192
 *     else:
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'def':
 *             # def statements aren't allowed in pxd files, except
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 2192, __pyx_L1_error)
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__102, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":2191
 *         return node
 *     else:
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         elif s.sy == 'def':
 */
      goto __pyx_L39;
    }

    /* "Cython/Compiler/Parsing.py":2193
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         elif s.sy == 'def':             # <<<<<<<<<<<<<<
 *             # def statements aren't allowed in pxd files, except
 *             # as part of a cdef class
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_def, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2193, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2196
 *             # def statements aren't allowed in pxd files, except
 *             # as part of a cdef class
 *             if ('pxd' in ctx.level) and (ctx.level != 'c_class_pxd'):             # <<<<<<<<<<<<<<
 *                 s.error('def statement not allowed here')
 *             s.level = ctx.level
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2196, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_pxd, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2196, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_5 = (__pyx_t_2 != 0);
      if (__pyx_t_5) {
      } else {
        __pyx_t_3 = __pyx_t_5;
        goto __pyx_L41_bool_binop_done;
      }
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2196, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2196, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_3 = __pyx_t_5;
      __pyx_L41_bool_binop_done:;
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2197
 *             # as part of a cdef class
 *             if ('pxd' in ctx.level) and (ctx.level != 'c_class_pxd'):
 *                 s.error('def statement not allowed here')             # <<<<<<<<<<<<<<
 *             s.level = ctx.level
 *             return p_def_statement(s, decorators)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2197, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__103, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2197, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2196
 *             # def statements aren't allowed in pxd files, except
 *             # as part of a cdef class
 *             if ('pxd' in ctx.level) and (ctx.level != 'c_class_pxd'):             # <<<<<<<<<<<<<<
 *                 s.error('def statement not allowed here')
 *             s.level = ctx.level
 */
      }

      /* "Cython/Compiler/Parsing.py":2198
 *             if ('pxd' in ctx.level) and (ctx.level != 'c_class_pxd'):
 *                 s.error('def statement not allowed here')
 *             s.level = ctx.level             # <<<<<<<<<<<<<<
 *             return p_def_statement(s, decorators)
 *         elif s.sy == 'class':
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2198, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_v_s->__pyx_base.level);
      __Pyx_DECREF(__pyx_v_s->__pyx_base.level);
      __pyx_v_s->__pyx_base.level = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2199
 *                 s.error('def statement not allowed here')
 *             s.level = ctx.level
 *             return p_def_statement(s, decorators)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'class':
 *             if ctx.level not in ('module', 'function', 'class', 'other'):
 */
      __Pyx_XDECREF(__pyx_r);
      if (!(likely(PyList_CheckExact(__pyx_v_decorators))||((__pyx_v_decorators) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_decorators)->tp_name), 0))) __PYX_ERR(0, 2199, __pyx_L1_error)
      __pyx_t_9.__pyx_n = 1;
      __pyx_t_9.decorators = ((PyObject*)__pyx_v_decorators);
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_def_statement(__pyx_v_s, &__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2199, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2193
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         elif s.sy == 'def':             # <<<<<<<<<<<<<<
 *             # def statements aren't allowed in pxd files, except
 *             # as part of a cdef class
 */
    }

    /* "Cython/Compiler/Parsing.py":2200
 *             s.level = ctx.level
 *             return p_def_statement(s, decorators)
 *         elif s.sy == 'class':             # <<<<<<<<<<<<<<
 *             if ctx.level not in ('module', 'function', 'class', 'other'):
 *                 s.error("class definition not allowed here")
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2200, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2201
 *             return p_def_statement(s, decorators)
 *         elif s.sy == 'class':
 *             if ctx.level not in ('module', 'function', 'class', 'other'):             # <<<<<<<<<<<<<<
 *                 s.error("class definition not allowed here")
 *             return p_class_statement(s, decorators)
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2201, __pyx_L1_error)
      if (__pyx_t_5) {
      } else {
        __pyx_t_3 = __pyx_t_5;
        goto __pyx_L44_bool_binop_done;
      }
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_function, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2201, __pyx_L1_error)
      if (__pyx_t_5) {
      } else {
        __pyx_t_3 = __pyx_t_5;
        goto __pyx_L44_bool_binop_done;
      }
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_class_2, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2201, __pyx_L1_error)
      if (__pyx_t_5) {
      } else {
        __pyx_t_3 = __pyx_t_5;
        goto __pyx_L44_bool_binop_done;
      }
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_other, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2201, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_5;
      __pyx_L44_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_5 = (__pyx_t_3 != 0);
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":2202
 *         elif s.sy == 'class':
 *             if ctx.level not in ('module', 'function', 'class', 'other'):
 *                 s.error("class definition not allowed here")             # <<<<<<<<<<<<<<
 *             return p_class_statement(s, decorators)
 *         elif s.sy == 'include':
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__104, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":2201
 *             return p_def_statement(s, decorators)
 *         elif s.sy == 'class':
 *             if ctx.level not in ('module', 'function', 'class', 'other'):             # <<<<<<<<<<<<<<
 *                 s.error("class definition not allowed here")
 *             return p_class_statement(s, decorators)
 */
      }

      /* "Cython/Compiler/Parsing.py":2203
 *             if ctx.level not in ('module', 'function', 'class', 'other'):
 *                 s.error("class definition not allowed here")
 *             return p_class_statement(s, decorators)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'include':
 *             if ctx.level not in ('module', 'module_pxd'):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_class_statement(__pyx_v_s, __pyx_v_decorators); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2203, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2200
 *             s.level = ctx.level
 *             return p_def_statement(s, decorators)
 *         elif s.sy == 'class':             # <<<<<<<<<<<<<<
 *             if ctx.level not in ('module', 'function', 'class', 'other'):
 *                 s.error("class definition not allowed here")
 */
    }

    /* "Cython/Compiler/Parsing.py":2204
 *                 s.error("class definition not allowed here")
 *             return p_class_statement(s, decorators)
 *         elif s.sy == 'include':             # <<<<<<<<<<<<<<
 *             if ctx.level not in ('module', 'module_pxd'):
 *                 s.error("include statement not allowed here")
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_include, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2204, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2205
 *             return p_class_statement(s, decorators)
 *         elif s.sy == 'include':
 *             if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *                 s.error("include statement not allowed here")
 *             return p_include_statement(s, ctx)
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2205, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2205, __pyx_L1_error)
      if (__pyx_t_3) {
      } else {
        __pyx_t_5 = __pyx_t_3;
        goto __pyx_L49_bool_binop_done;
      }
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2205, __pyx_L1_error)
      __pyx_t_5 = __pyx_t_3;
      __pyx_L49_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_3 = (__pyx_t_5 != 0);
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2206
 *         elif s.sy == 'include':
 *             if ctx.level not in ('module', 'module_pxd'):
 *                 s.error("include statement not allowed here")             # <<<<<<<<<<<<<<
 *             return p_include_statement(s, ctx)
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2206, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__105, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2206, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2205
 *             return p_class_statement(s, decorators)
 *         elif s.sy == 'include':
 *             if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *                 s.error("include statement not allowed here")
 *             return p_include_statement(s, ctx)
 */
      }

      /* "Cython/Compiler/Parsing.py":2207
 *             if ctx.level not in ('module', 'module_pxd'):
 *                 s.error("include statement not allowed here")
 *             return p_include_statement(s, ctx)             # <<<<<<<<<<<<<<
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':
 *             return p_property_decl(s)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_include_statement(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2207, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2204
 *                 s.error("class definition not allowed here")
 *             return p_class_statement(s, decorators)
 *         elif s.sy == 'include':             # <<<<<<<<<<<<<<
 *             if ctx.level not in ('module', 'module_pxd'):
 *                 s.error("include statement not allowed here")
 */
    }

    /* "Cython/Compiler/Parsing.py":2208
 *                 s.error("include statement not allowed here")
 *             return p_include_statement(s, ctx)
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':             # <<<<<<<<<<<<<<
 *             return p_property_decl(s)
 *         elif s.sy == 'pass' and ctx.level != 'property':
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_c_class, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2208, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L51_bool_binop_done;
    }
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2208, __pyx_L1_error)
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L51_bool_binop_done;
    }
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_property, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2208, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_5;
    __pyx_L51_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2209
 *             return p_include_statement(s, ctx)
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':
 *             return p_property_decl(s)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'pass' and ctx.level != 'property':
 *             return p_pass_statement(s, with_newline=True)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_property_decl(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2209, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2208
 *                 s.error("include statement not allowed here")
 *             return p_include_statement(s, ctx)
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':             # <<<<<<<<<<<<<<
 *             return p_property_decl(s)
 *         elif s.sy == 'pass' and ctx.level != 'property':
 */
    }

    /* "Cython/Compiler/Parsing.py":2210
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':
 *             return p_property_decl(s)
 *         elif s.sy == 'pass' and ctx.level != 'property':             # <<<<<<<<<<<<<<
 *             return p_pass_statement(s, with_newline=True)
 *         else:
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2210, __pyx_L1_error)
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_property, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2210, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_3 = __pyx_t_5;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2211
 *             return p_property_decl(s)
 *         elif s.sy == 'pass' and ctx.level != 'property':
 *             return p_pass_statement(s, with_newline=True)             # <<<<<<<<<<<<<<
 *         else:
 *             if ctx.level in ('c_class_pxd', 'property'):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6.__pyx_n = 1;
      __pyx_t_6.with_newline = 1;
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2211, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2210
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':
 *             return p_property_decl(s)
 *         elif s.sy == 'pass' and ctx.level != 'property':             # <<<<<<<<<<<<<<
 *             return p_pass_statement(s, with_newline=True)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":2213
 *             return p_pass_statement(s, with_newline=True)
 *         else:
 *             if ctx.level in ('c_class_pxd', 'property'):             # <<<<<<<<<<<<<<
 *                 node = p_ignorable_statement(s)
 *                 if node is not None:
 */
    /*else*/ {
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2213, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2213, __pyx_L1_error)
      if (!__pyx_t_5) {
      } else {
        __pyx_t_3 = __pyx_t_5;
        goto __pyx_L57_bool_binop_done;
      }
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_property, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2213, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_5;
      __pyx_L57_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_5 = (__pyx_t_3 != 0);
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":2214
 *         else:
 *             if ctx.level in ('c_class_pxd', 'property'):
 *                 node = p_ignorable_statement(s)             # <<<<<<<<<<<<<<
 *                 if node is not None:
 *                     return node
 */
        __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_ignorable_statement(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2214, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_v_node = __pyx_t_7;
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2215
 *             if ctx.level in ('c_class_pxd', 'property'):
 *                 node = p_ignorable_statement(s)
 *                 if node is not None:             # <<<<<<<<<<<<<<
 *                     return node
 *                 s.error("Executable statement not allowed here")
 */
        __pyx_t_5 = (__pyx_v_node != Py_None);
        __pyx_t_3 = (__pyx_t_5 != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":2216
 *                 node = p_ignorable_statement(s)
 *                 if node is not None:
 *                     return node             # <<<<<<<<<<<<<<
 *                 s.error("Executable statement not allowed here")
 *             if s.sy == 'if':
 */
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_node);
          __pyx_r = __pyx_v_node;
          goto __pyx_L0;

          /* "Cython/Compiler/Parsing.py":2215
 *             if ctx.level in ('c_class_pxd', 'property'):
 *                 node = p_ignorable_statement(s)
 *                 if node is not None:             # <<<<<<<<<<<<<<
 *                     return node
 *                 s.error("Executable statement not allowed here")
 */
        }

        /* "Cython/Compiler/Parsing.py":2217
 *                 if node is not None:
 *                     return node
 *                 s.error("Executable statement not allowed here")             # <<<<<<<<<<<<<<
 *             if s.sy == 'if':
 *                 return p_if_statement(s)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__106, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":2213
 *             return p_pass_statement(s, with_newline=True)
 *         else:
 *             if ctx.level in ('c_class_pxd', 'property'):             # <<<<<<<<<<<<<<
 *                 node = p_ignorable_statement(s)
 *                 if node is not None:
 */
      }

      /* "Cython/Compiler/Parsing.py":2218
 *                     return node
 *                 s.error("Executable statement not allowed here")
 *             if s.sy == 'if':             # <<<<<<<<<<<<<<
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_if, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2218, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2219
 *                 s.error("Executable statement not allowed here")
 *             if s.sy == 'if':
 *                 return p_if_statement(s)             # <<<<<<<<<<<<<<
 *             elif s.sy == 'while':
 *                 return p_while_statement(s)
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_if_statement(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2219, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;

        /* "Cython/Compiler/Parsing.py":2218
 *                     return node
 *                 s.error("Executable statement not allowed here")
 *             if s.sy == 'if':             # <<<<<<<<<<<<<<
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':
 */
      }

      /* "Cython/Compiler/Parsing.py":2220
 *             if s.sy == 'if':
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':             # <<<<<<<<<<<<<<
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_while, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2220, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2221
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':
 *                 return p_while_statement(s)             # <<<<<<<<<<<<<<
 *             elif s.sy == 'for':
 *                 return p_for_statement(s)
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_while_statement(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2221, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;

        /* "Cython/Compiler/Parsing.py":2220
 *             if s.sy == 'if':
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':             # <<<<<<<<<<<<<<
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':
 */
      }

      /* "Cython/Compiler/Parsing.py":2222
 *             elif s.sy == 'while':
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2222, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2223
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':
 *                 return p_for_statement(s)             # <<<<<<<<<<<<<<
 *             elif s.sy == 'try':
 *                 return p_try_statement(s)
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_statement(__pyx_v_s, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;

        /* "Cython/Compiler/Parsing.py":2222
 *             elif s.sy == 'while':
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':
 */
      }

      /* "Cython/Compiler/Parsing.py":2224
 *             elif s.sy == 'for':
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':             # <<<<<<<<<<<<<<
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_try, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2224, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2225
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':
 *                 return p_try_statement(s)             # <<<<<<<<<<<<<<
 *             elif s.sy == 'with':
 *                 return p_with_statement(s)
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_try_statement(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2225, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;

        /* "Cython/Compiler/Parsing.py":2224
 *             elif s.sy == 'for':
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':             # <<<<<<<<<<<<<<
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':
 */
      }

      /* "Cython/Compiler/Parsing.py":2226
 *             elif s.sy == 'try':
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':             # <<<<<<<<<<<<<<
 *                 return p_with_statement(s)
 *             elif s.sy == 'async':
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_with, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2226, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2227
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':
 *                 return p_with_statement(s)             # <<<<<<<<<<<<<<
 *             elif s.sy == 'async':
 *                 s.next()
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_statement(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2227, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;

        /* "Cython/Compiler/Parsing.py":2226
 *             elif s.sy == 'try':
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':             # <<<<<<<<<<<<<<
 *                 return p_with_statement(s)
 *             elif s.sy == 'async':
 */
      }

      /* "Cython/Compiler/Parsing.py":2228
 *             elif s.sy == 'with':
 *                 return p_with_statement(s)
 *             elif s.sy == 'async':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 return p_async_statement(s, ctx, decorators)
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_async, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2228, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2229
 *                 return p_with_statement(s)
 *             elif s.sy == 'async':
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 return p_async_statement(s, ctx, decorators)
 *             else:
 */
        __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":2230
 *             elif s.sy == 'async':
 *                 s.next()
 *                 return p_async_statement(s, ctx, decorators)             # <<<<<<<<<<<<<<
 *             else:
 *                 if s.sy == 'IDENT' and s.systring == 'async':
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_async_statement(__pyx_v_s, __pyx_v_ctx, __pyx_v_decorators); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2230, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;

        /* "Cython/Compiler/Parsing.py":2228
 *             elif s.sy == 'with':
 *                 return p_with_statement(s)
 *             elif s.sy == 'async':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 return p_async_statement(s, ctx, decorators)
 */
      }

      /* "Cython/Compiler/Parsing.py":2232
 *                 return p_async_statement(s, ctx, decorators)
 *             else:
 *                 if s.sy == 'IDENT' and s.systring == 'async':             # <<<<<<<<<<<<<<
 *                     ident_name = s.systring
 *                     # PEP 492 enables the async/await keywords when it spots "async def ..."
 */
      /*else*/ {
        __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2232, __pyx_L1_error)
        if (__pyx_t_5) {
        } else {
          __pyx_t_3 = __pyx_t_5;
          goto __pyx_L62_bool_binop_done;
        }
        __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_async, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2232, __pyx_L1_error)
        __pyx_t_3 = __pyx_t_5;
        __pyx_L62_bool_binop_done:;
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":2233
 *             else:
 *                 if s.sy == 'IDENT' and s.systring == 'async':
 *                     ident_name = s.systring             # <<<<<<<<<<<<<<
 *                     # PEP 492 enables the async/await keywords when it spots "async def ..."
 *                     s.next()
 */
          __pyx_t_8 = __pyx_v_s->systring;
          __Pyx_INCREF(__pyx_t_8);
          __pyx_v_ident_name = __pyx_t_8;
          __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":2235
 *                     ident_name = s.systring
 *                     # PEP 492 enables the async/await keywords when it spots "async def ..."
 *                     s.next()             # <<<<<<<<<<<<<<
 *                     if s.sy == 'def':
 *                         return p_async_statement(s, ctx, decorators)
 */
          __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":2236
 *                     # PEP 492 enables the async/await keywords when it spots "async def ..."
 *                     s.next()
 *                     if s.sy == 'def':             # <<<<<<<<<<<<<<
 *                         return p_async_statement(s, ctx, decorators)
 *                     elif decorators:
 */
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_def, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2236, __pyx_L1_error)
          if (__pyx_t_3) {

            /* "Cython/Compiler/Parsing.py":2237
 *                     s.next()
 *                     if s.sy == 'def':
 *                         return p_async_statement(s, ctx, decorators)             # <<<<<<<<<<<<<<
 *                     elif decorators:
 *                         s.error("Decorators can only be followed by functions or classes")
 */
            __Pyx_XDECREF(__pyx_r);
            __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_async_statement(__pyx_v_s, __pyx_v_ctx, __pyx_v_decorators); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2237, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_r = __pyx_t_8;
            __pyx_t_8 = 0;
            goto __pyx_L0;

            /* "Cython/Compiler/Parsing.py":2236
 *                     # PEP 492 enables the async/await keywords when it spots "async def ..."
 *                     s.next()
 *                     if s.sy == 'def':             # <<<<<<<<<<<<<<
 *                         return p_async_statement(s, ctx, decorators)
 *                     elif decorators:
 */
          }

          /* "Cython/Compiler/Parsing.py":2238
 *                     if s.sy == 'def':
 *                         return p_async_statement(s, ctx, decorators)
 *                     elif decorators:             # <<<<<<<<<<<<<<
 *                         s.error("Decorators can only be followed by functions or classes")
 *                     s.put_back('IDENT', ident_name)  # re-insert original token
 */
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_decorators); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2238, __pyx_L1_error)
          if (__pyx_t_3) {

            /* "Cython/Compiler/Parsing.py":2239
 *                         return p_async_statement(s, ctx, decorators)
 *                     elif decorators:
 *                         s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *                     s.put_back('IDENT', ident_name)  # re-insert original token
 *                 return p_simple_statement_list(s, ctx, first_statement=first_statement)
 */
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__107, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

            /* "Cython/Compiler/Parsing.py":2238
 *                     if s.sy == 'def':
 *                         return p_async_statement(s, ctx, decorators)
 *                     elif decorators:             # <<<<<<<<<<<<<<
 *                         s.error("Decorators can only be followed by functions or classes")
 *                     s.put_back('IDENT', ident_name)  # re-insert original token
 */
          }

          /* "Cython/Compiler/Parsing.py":2240
 *                     elif decorators:
 *                         s.error("Decorators can only be followed by functions or classes")
 *                     s.put_back('IDENT', ident_name)  # re-insert original token             # <<<<<<<<<<<<<<
 *                 return p_simple_statement_list(s, ctx, first_statement=first_statement)
 * 
 */
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2240, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = NULL;
          __pyx_t_10 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_8, function);
              __pyx_t_10 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_IDENT, __pyx_v_ident_name};
            __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_IDENT, __pyx_v_ident_name};
            __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          {
            __pyx_t_1 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_n_u_IDENT);
            __Pyx_GIVEREF(__pyx_n_u_IDENT);
            PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_10, __pyx_n_u_IDENT);
            __Pyx_INCREF(__pyx_v_ident_name);
            __Pyx_GIVEREF(__pyx_v_ident_name);
            PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_10, __pyx_v_ident_name);
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "Cython/Compiler/Parsing.py":2232
 *                 return p_async_statement(s, ctx, decorators)
 *             else:
 *                 if s.sy == 'IDENT' and s.systring == 'async':             # <<<<<<<<<<<<<<
 *                     ident_name = s.systring
 *                     # PEP 492 enables the async/await keywords when it spots "async def ..."
 */
        }

        /* "Cython/Compiler/Parsing.py":2241
 *                         s.error("Decorators can only be followed by functions or classes")
 *                     s.put_back('IDENT', ident_name)  # re-insert original token
 *                 return p_simple_statement_list(s, ctx, first_statement=first_statement)             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_11.__pyx_n = 1;
        __pyx_t_11.first_statement = __pyx_v_first_statement;
        __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement_list(__pyx_v_s, __pyx_v_ctx, &__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2241, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_r = __pyx_t_7;
        __pyx_t_7 = 0;
        goto __pyx_L0;
      }
    }
    __pyx_L39:;
  }

  /* "Cython/Compiler/Parsing.py":2142
 *     return result
 * 
 * def p_statement(s, ctx, first_statement = 0):             # <<<<<<<<<<<<<<
 *     cdef_flag = ctx.cdef_flag
 *     decorators = None
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cdef_flag);
  __Pyx_XDECREF(__pyx_v_decorators);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF(__pyx_v_tup);
  __Pyx_XDECREF(__pyx_v_ident_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2244
 * 
 * 
 * def p_statement_list(s, ctx, first_statement = 0):             # <<<<<<<<<<<<<<
 *     # Parse a series of statements separated by newlines.
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list *__pyx_optional_args) {
  int __pyx_v_first_statement = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_stats = NULL;
  PyObject *__pyx_v_stat = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  __Pyx_RefNannySetupContext("p_statement_list", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_first_statement = __pyx_optional_args->first_statement;
    }
  }

  /* "Cython/Compiler/Parsing.py":2246
 * def p_statement_list(s, ctx, first_statement = 0):
 *     # Parse a series of statements separated by newlines.
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     stats = []
 *     while s.sy not in ('DEDENT', 'EOF'):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2247
 *     # Parse a series of statements separated by newlines.
 *     pos = s.position()
 *     stats = []             # <<<<<<<<<<<<<<
 *     while s.sy not in ('DEDENT', 'EOF'):
 *         stat = p_statement(s, ctx, first_statement = first_statement)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stats = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2248
 *     pos = s.position()
 *     stats = []
 *     while s.sy not in ('DEDENT', 'EOF'):             # <<<<<<<<<<<<<<
 *         stat = p_statement(s, ctx, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):
 */
  while (1) {
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_1 = __pyx_v_s->sy;
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2248, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2248, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_3;
    __pyx_L5_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":2249
 *     stats = []
 *     while s.sy not in ('DEDENT', 'EOF'):
 *         stat = p_statement(s, ctx, first_statement = first_statement)             # <<<<<<<<<<<<<<
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue
 */
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.first_statement = __pyx_v_first_statement;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement(__pyx_v_s, __pyx_v_ctx, &__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_stat, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2250
 *     while s.sy not in ('DEDENT', 'EOF'):
 *         stat = p_statement(s, ctx, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):             # <<<<<<<<<<<<<<
 *             continue
 *         stats.append(stat)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_stat, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 2250, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2251
 *         stat = p_statement(s, ctx, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue             # <<<<<<<<<<<<<<
 *         stats.append(stat)
 *         first_statement = False
 */
      goto __pyx_L3_continue;

      /* "Cython/Compiler/Parsing.py":2250
 *     while s.sy not in ('DEDENT', 'EOF'):
 *         stat = p_statement(s, ctx, first_statement = first_statement)
 *         if isinstance(stat, Nodes.PassStatNode):             # <<<<<<<<<<<<<<
 *             continue
 *         stats.append(stat)
 */
    }

    /* "Cython/Compiler/Parsing.py":2252
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue
 *         stats.append(stat)             # <<<<<<<<<<<<<<
 *         first_statement = False
 *     if not stats:
 */
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_stats, __pyx_v_stat); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 2252, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2253
 *             continue
 *         stats.append(stat)
 *         first_statement = False             # <<<<<<<<<<<<<<
 *     if not stats:
 *         return Nodes.PassStatNode(pos)
 */
    __pyx_v_first_statement = 0;
    __pyx_L3_continue:;
  }

  /* "Cython/Compiler/Parsing.py":2254
 *         stats.append(stat)
 *         first_statement = False
 *     if not stats:             # <<<<<<<<<<<<<<
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 */
  __pyx_t_2 = (__pyx_v_stats != Py_None) && (PyList_GET_SIZE(__pyx_v_stats) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2255
 *         first_statement = False
 *     if not stats:
 *         return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     elif len(stats) == 1:
 *         return stats[0]
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_pos};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_pos);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2254
 *         stats.append(stat)
 *         first_statement = False
 *     if not stats:             # <<<<<<<<<<<<<<
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 */
  }

  /* "Cython/Compiler/Parsing.py":2256
 *     if not stats:
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:             # <<<<<<<<<<<<<<
 *         return stats[0]
 *     else:
 */
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_stats); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2256, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 == 1) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2257
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 *         return stats[0]             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.StatListNode(pos, stats = stats)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2256
 *     if not stats:
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:             # <<<<<<<<<<<<<<
 *         return stats[0]
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":2259
 *         return stats[0]
 *     else:
 *         return Nodes.StatListNode(pos, stats = stats)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_stats, __pyx_v_stats) < 0) __PYX_ERR(0, 2259, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2244
 * 
 * 
 * def p_statement_list(s, ctx, first_statement = 0):             # <<<<<<<<<<<<<<
 *     # Parse a series of statements separated by newlines.
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_statement_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_stats);
  __Pyx_XDECREF(__pyx_v_stat);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2262
 * 
 * 
 * def p_suite(s, ctx=Ctx()):             # <<<<<<<<<<<<<<
 *     return p_suite_with_docstring(s, ctx, with_doc_only=False)[1]
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_suite(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite *__pyx_optional_args) {
  PyObject *__pyx_v_ctx = __pyx_k__108;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_suite", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ctx = __pyx_optional_args->ctx;
    }
  }

  /* "Cython/Compiler/Parsing.py":2263
 * 
 * def p_suite(s, ctx=Ctx()):
 *     return p_suite_with_docstring(s, ctx, with_doc_only=False)[1]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.with_doc_only = 0;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(__pyx_v_s, __pyx_v_ctx, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 2263, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2262
 * 
 * 
 * def p_suite(s, ctx=Ctx()):             # <<<<<<<<<<<<<<
 *     return p_suite_with_docstring(s, ctx, with_doc_only=False)[1]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_suite", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2266
 * 
 * 
 * def p_suite_with_docstring(s, ctx, with_doc_only=False):             # <<<<<<<<<<<<<<
 *     s.expect(':')
 *     doc = None
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring *__pyx_optional_args) {
  int __pyx_v_with_doc_only = ((int)0);
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_6;
  __Pyx_RefNannySetupContext("p_suite_with_docstring", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_with_doc_only = __pyx_optional_args->with_doc_only;
    }
  }

  /* "Cython/Compiler/Parsing.py":2267
 * 
 * def p_suite_with_docstring(s, ctx, with_doc_only=False):
 *     s.expect(':')             # <<<<<<<<<<<<<<
 *     doc = None
 *     if s.sy == 'NEWLINE':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__3, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 2267, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2268
 * def p_suite_with_docstring(s, ctx, with_doc_only=False):
 *     s.expect(':')
 *     doc = None             # <<<<<<<<<<<<<<
 *     if s.sy == 'NEWLINE':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_doc = Py_None;

  /* "Cython/Compiler/Parsing.py":2269
 *     s.expect(':')
 *     doc = None
 *     if s.sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect_indent()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2269, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2270
 *     doc = None
 *     if s.sy == 'NEWLINE':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         if with_doc_only:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2271
 *     if s.sy == 'NEWLINE':
 *         s.next()
 *         s.expect_indent()             # <<<<<<<<<<<<<<
 *         if with_doc_only:
 *             doc = p_doc_string(s)
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_indent(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2272
 *         s.next()
 *         s.expect_indent()
 *         if with_doc_only:             # <<<<<<<<<<<<<<
 *             doc = p_doc_string(s)
 *         body = p_statement_list(s, ctx)
 */
    __pyx_t_1 = (__pyx_v_with_doc_only != 0);
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2273
 *         s.expect_indent()
 *         if with_doc_only:
 *             doc = p_doc_string(s)             # <<<<<<<<<<<<<<
 *         body = p_statement_list(s, ctx)
 *         s.expect_dedent()
 */
      __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_doc_string(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2273, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_doc, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2272
 *         s.next()
 *         s.expect_indent()
 *         if with_doc_only:             # <<<<<<<<<<<<<<
 *             doc = p_doc_string(s)
 *         body = p_statement_list(s, ctx)
 */
    }

    /* "Cython/Compiler/Parsing.py":2274
 *         if with_doc_only:
 *             doc = p_doc_string(s)
 *         body = p_statement_list(s, ctx)             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *     else:
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(__pyx_v_s, __pyx_v_ctx, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_body = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2275
 *             doc = p_doc_string(s)
 *         body = p_statement_list(s, ctx)
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *     else:
 *         if ctx.api:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2269
 *     s.expect(':')
 *     doc = None
 *     if s.sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect_indent()
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2277
 *         s.expect_dedent()
 *     else:
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         if ctx.level in ('module', 'class', 'function', 'other'):
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2277, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2277, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2278
 *     else:
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)             # <<<<<<<<<<<<<<
 *         if ctx.level in ('module', 'class', 'function', 'other'):
 *             body = p_simple_statement_list(s, ctx)
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2278, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2278, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 2278, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__109, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2278, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2277
 *         s.expect_dedent()
 *     else:
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         if ctx.level in ('module', 'class', 'function', 'other'):
 */
    }

    /* "Cython/Compiler/Parsing.py":2279
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         if ctx.level in ('module', 'class', 'function', 'other'):             # <<<<<<<<<<<<<<
 *             body = p_simple_statement_list(s, ctx)
 *         else:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_module, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2279, __pyx_L1_error)
    if (!__pyx_t_5) {
    } else {
      __pyx_t_1 = __pyx_t_5;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2279, __pyx_L1_error)
    if (!__pyx_t_5) {
    } else {
      __pyx_t_1 = __pyx_t_5;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_function, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2279, __pyx_L1_error)
    if (!__pyx_t_5) {
    } else {
      __pyx_t_1 = __pyx_t_5;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_other, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2279, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_5;
    __pyx_L7_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = (__pyx_t_1 != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2280
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         if ctx.level in ('module', 'class', 'function', 'other'):
 *             body = p_simple_statement_list(s, ctx)             # <<<<<<<<<<<<<<
 *         else:
 *             body = p_pass_statement(s)
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement_list(__pyx_v_s, __pyx_v_ctx, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2280, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_body = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2279
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         if ctx.level in ('module', 'class', 'function', 'other'):             # <<<<<<<<<<<<<<
 *             body = p_simple_statement_list(s, ctx)
 *         else:
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2282
 *             body = p_simple_statement_list(s, ctx)
 *         else:
 *             body = p_pass_statement(s)             # <<<<<<<<<<<<<<
 *             s.expect_newline("Syntax error in declarations", ignore_semicolon=True)
 *     if not with_doc_only:
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_body = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2283
 *         else:
 *             body = p_pass_statement(s)
 *             s.expect_newline("Syntax error in declarations", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *     if not with_doc_only:
 *         doc, body = _extract_docstring(body)
 */
      __pyx_t_6.__pyx_n = 2;
      __pyx_t_6.message = __pyx_kp_u_Syntax_error_in_declarations;
      __pyx_t_6.ignore_semicolon = 1;
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_L6:;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2284
 *             body = p_pass_statement(s)
 *             s.expect_newline("Syntax error in declarations", ignore_semicolon=True)
 *     if not with_doc_only:             # <<<<<<<<<<<<<<
 *         doc, body = _extract_docstring(body)
 *     return doc, body
 */
  __pyx_t_5 = ((!(__pyx_v_with_doc_only != 0)) != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2285
 *             s.expect_newline("Syntax error in declarations", ignore_semicolon=True)
 *     if not with_doc_only:
 *         doc, body = _extract_docstring(body)             # <<<<<<<<<<<<<<
 *     return doc, body
 * 
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing__extract_docstring(__pyx_v_body); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(__pyx_t_4 != Py_None)) {
      PyObject* sequence = __pyx_t_4;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 2285, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2285, __pyx_L1_error)
    }
    __Pyx_DECREF_SET(__pyx_v_doc, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_body, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2284
 *             body = p_pass_statement(s)
 *             s.expect_newline("Syntax error in declarations", ignore_semicolon=True)
 *     if not with_doc_only:             # <<<<<<<<<<<<<<
 *         doc, body = _extract_docstring(body)
 *     return doc, body
 */
  }

  /* "Cython/Compiler/Parsing.py":2286
 *     if not with_doc_only:
 *         doc, body = _extract_docstring(body)
 *     return doc, body             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_doc);
  __Pyx_GIVEREF(__pyx_v_doc);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_doc);
  __Pyx_INCREF(__pyx_v_body);
  __Pyx_GIVEREF(__pyx_v_body);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_body);
  __pyx_r = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2266
 * 
 * 
 * def p_suite_with_docstring(s, ctx, with_doc_only=False):             # <<<<<<<<<<<<<<
 *     s.expect(':')
 *     doc = None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_suite_with_docstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2289
 * 
 * 
 * def p_positional_and_keyword_args(s, end_sy_set, templates = None):             # <<<<<<<<<<<<<<
 *     """
 *     Parses positional and keyword arguments. end_sy_set
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_end_sy_set, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args *__pyx_optional_args) {
  PyObject *__pyx_v_templates = ((PyObject *)Py_None);
  PyObject *__pyx_v_positional_args = NULL;
  PyObject *__pyx_v_keyword_args = NULL;
  long __pyx_v_pos_idx;
  int __pyx_v_parsed_type;
  PyObject *__pyx_v_ident = NULL;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_declarator = NULL;
  PyObject *__pyx_v_keyword_node = NULL;
  CYTHON_UNUSED int __pyx_v_was_keyword;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("p_positional_and_keyword_args", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_templates = __pyx_optional_args->templates;
    }
  }

  /* "Cython/Compiler/Parsing.py":2297
 *     Returns: (positional_args, keyword_args)
 *     """
 *     positional_args = []             # <<<<<<<<<<<<<<
 *     keyword_args = []
 *     pos_idx = 0
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_positional_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2298
 *     """
 *     positional_args = []
 *     keyword_args = []             # <<<<<<<<<<<<<<
 *     pos_idx = 0
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_keyword_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2299
 *     positional_args = []
 *     keyword_args = []
 *     pos_idx = 0             # <<<<<<<<<<<<<<
 * 
 *     while s.sy not in end_sy_set:
 */
  __pyx_v_pos_idx = 0;

  /* "Cython/Compiler/Parsing.py":2301
 *     pos_idx = 0
 * 
 *     while s.sy not in end_sy_set:             # <<<<<<<<<<<<<<
 *         if s.sy == '*' or s.sy == '**':
 *             s.error('Argument expansion not allowed here.', fatal=False)
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_end_sy_set, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2301, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":2302
 * 
 *     while s.sy not in end_sy_set:
 *         if s.sy == '*' or s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.error('Argument expansion not allowed here.', fatal=False)
 * 
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2302, __pyx_L1_error)
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2302, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_2;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2303
 *     while s.sy not in end_sy_set:
 *         if s.sy == '*' or s.sy == '**':
 *             s.error('Argument expansion not allowed here.', fatal=False)             # <<<<<<<<<<<<<<
 * 
 *         parsed_type = False
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 2303, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__110, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":2302
 * 
 *     while s.sy not in end_sy_set:
 *         if s.sy == '*' or s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.error('Argument expansion not allowed here.', fatal=False)
 * 
 */
    }

    /* "Cython/Compiler/Parsing.py":2305
 *             s.error('Argument expansion not allowed here.', fatal=False)
 * 
 *         parsed_type = False             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':
 *             ident = s.systring
 */
    __pyx_v_parsed_type = 0;

    /* "Cython/Compiler/Parsing.py":2306
 * 
 *         parsed_type = False
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':             # <<<<<<<<<<<<<<
 *             ident = s.systring
 *             s.next() # s.sy is '='
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2306, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->peek(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_2;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2307
 *         parsed_type = False
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':
 *             ident = s.systring             # <<<<<<<<<<<<<<
 *             s.next() # s.sy is '='
 *             s.next()
 */
      __pyx_t_4 = __pyx_v_s->systring;
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_ident, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2308
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':
 *             ident = s.systring
 *             s.next() # s.sy is '='             # <<<<<<<<<<<<<<
 *             s.next()
 *             if looking_at_expr(s):
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2309
 *             ident = s.systring
 *             s.next() # s.sy is '='
 *             s.next()             # <<<<<<<<<<<<<<
 *             if looking_at_expr(s):
 *                 arg = p_test(s)
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2310
 *             s.next() # s.sy is '='
 *             s.next()
 *             if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *             else:
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2311
 *             s.next()
 *             if looking_at_expr(s):
 *                 arg = p_test(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)
 */
        __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2311, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2310
 *             s.next() # s.sy is '='
 *             s.next()
 *             if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *             else:
 */
        goto __pyx_L11;
      }

      /* "Cython/Compiler/Parsing.py":2313
 *                 arg = p_test(s)
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)             # <<<<<<<<<<<<<<
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 */
      /*else*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_s));
        __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 2313, __pyx_L1_error)
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_base_type, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":2314
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)
 *                 declarator = p_c_declarator(s, empty = 1)             # <<<<<<<<<<<<<<
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)
 */
        __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_empty, __pyx_int_1) < 0) __PYX_ERR(0, 2314, __pyx_L1_error)
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_declarator, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2315
 *                 base_type = p_c_base_type(s, templates = templates)
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,             # <<<<<<<<<<<<<<
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CComplexBaseTypeNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_base_type, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":2316
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)             # <<<<<<<<<<<<<<
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(arg.pos, value=ident)
 */
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2316, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 2316, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 2316, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":2315
 *                 base_type = p_c_base_type(s, templates = templates)
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,             # <<<<<<<<<<<<<<
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 */
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":2317
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True             # <<<<<<<<<<<<<<
 *             keyword_node = ExprNodes.IdentifierStringNode(arg.pos, value=ident)
 *             keyword_args.append((keyword_node, arg))
 */
        __pyx_v_parsed_type = 1;
      }
      __pyx_L11:;

      /* "Cython/Compiler/Parsing.py":2318
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(arg.pos, value=ident)             # <<<<<<<<<<<<<<
 *             keyword_args.append((keyword_node, arg))
 *             was_keyword = True
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_ident) < 0) __PYX_ERR(0, 2318, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_keyword_node, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2319
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(arg.pos, value=ident)
 *             keyword_args.append((keyword_node, arg))             # <<<<<<<<<<<<<<
 *             was_keyword = True
 * 
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_keyword_node);
      __Pyx_GIVEREF(__pyx_v_keyword_node);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_keyword_node);
      __Pyx_INCREF(__pyx_v_arg);
      __Pyx_GIVEREF(__pyx_v_arg);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_arg);
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_keyword_args, __pyx_t_4); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 2319, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2320
 *             keyword_node = ExprNodes.IdentifierStringNode(arg.pos, value=ident)
 *             keyword_args.append((keyword_node, arg))
 *             was_keyword = True             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __pyx_v_was_keyword = 1;

      /* "Cython/Compiler/Parsing.py":2306
 * 
 *         parsed_type = False
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':             # <<<<<<<<<<<<<<
 *             ident = s.systring
 *             s.next() # s.sy is '='
 */
      goto __pyx_L8;
    }

    /* "Cython/Compiler/Parsing.py":2323
 * 
 *         else:
 *             if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *             else:
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2323, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2323, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2324
 *         else:
 *             if looking_at_expr(s):
 *                 arg = p_test(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)
 */
        __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2324, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2323
 * 
 *         else:
 *             if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *             else:
 */
        goto __pyx_L12;
      }

      /* "Cython/Compiler/Parsing.py":2326
 *                 arg = p_test(s)
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)             # <<<<<<<<<<<<<<
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 */
      /*else*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2326, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2326, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_s));
        __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2326, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 2326, __pyx_L1_error)
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2326, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_base_type, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":2327
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)
 *                 declarator = p_c_declarator(s, empty = 1)             # <<<<<<<<<<<<<<
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)
 */
        __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2327, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2327, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2327, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_empty, __pyx_int_1) < 0) __PYX_ERR(0, 2327, __pyx_L1_error)
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2327, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_declarator, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2328
 *                 base_type = p_c_base_type(s, templates = templates)
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,             # <<<<<<<<<<<<<<
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CComplexBaseTypeNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_base_type, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":2329
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)             # <<<<<<<<<<<<<<
 *                 parsed_type = True
 *             positional_args.append(arg)
 */
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2329, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 2329, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 2329, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":2328
 *                 base_type = p_c_base_type(s, templates = templates)
 *                 declarator = p_c_declarator(s, empty = 1)
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,             # <<<<<<<<<<<<<<
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 */
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":2330
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True             # <<<<<<<<<<<<<<
 *             positional_args.append(arg)
 *             pos_idx += 1
 */
        __pyx_v_parsed_type = 1;
      }
      __pyx_L12:;

      /* "Cython/Compiler/Parsing.py":2331
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 *             positional_args.append(arg)             # <<<<<<<<<<<<<<
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 */
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_v_arg); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 2331, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":2332
 *                 parsed_type = True
 *             positional_args.append(arg)
 *             pos_idx += 1             # <<<<<<<<<<<<<<
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",
 */
      __pyx_v_pos_idx = (__pyx_v_pos_idx + 1);

      /* "Cython/Compiler/Parsing.py":2333
 *             positional_args.append(arg)
 *             pos_idx += 1
 *             if len(keyword_args) > 0:             # <<<<<<<<<<<<<<
 *                 s.error("Non-keyword arg following keyword arg",
 *                         pos=arg.pos)
 */
      __pyx_t_8 = PyList_GET_SIZE(__pyx_v_keyword_args); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 2333, __pyx_L1_error)
      __pyx_t_3 = ((__pyx_t_8 > 0) != 0);
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2334
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                         pos=arg.pos)
 * 
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2334, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);

        /* "Cython/Compiler/Parsing.py":2335
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",
 *                         pos=arg.pos)             # <<<<<<<<<<<<<<
 * 
 *         if s.sy != ',':
 */
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_t_1) < 0) __PYX_ERR(0, 2335, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2334
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                         pos=arg.pos)
 * 
 */
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__111, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2334, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2333
 *             positional_args.append(arg)
 *             pos_idx += 1
 *             if len(keyword_args) > 0:             # <<<<<<<<<<<<<<
 *                 s.error("Non-keyword arg following keyword arg",
 *                         pos=arg.pos)
 */
      }
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":2337
 *                         pos=arg.pos)
 * 
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             if s.sy not in end_sy_set:
 *                 if parsed_type:
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2337, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2338
 * 
 *         if s.sy != ',':
 *             if s.sy not in end_sy_set:             # <<<<<<<<<<<<<<
 *                 if parsed_type:
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 */
      __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_end_sy_set, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2338, __pyx_L1_error)
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2339
 *         if s.sy != ',':
 *             if s.sy not in end_sy_set:
 *                 if parsed_type:             # <<<<<<<<<<<<<<
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 *             break
 */
        __pyx_t_2 = (__pyx_v_parsed_type != 0);
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":2340
 *             if s.sy not in end_sy_set:
 *                 if parsed_type:
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2340, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = PyUnicode_Join(__pyx_kp_u_or_2, __pyx_v_end_sy_set); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2340, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Unmatched_s, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2340, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_6)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          if (!__pyx_t_6) {
            __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2340, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_1);
          } else {
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_5)) {
              PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_4};
              __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2340, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
              PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_4};
              __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2340, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            } else
            #endif
            {
              __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2340, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
              __Pyx_GIVEREF(__pyx_t_4);
              PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_4);
              __pyx_t_4 = 0;
              __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2340, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            }
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":2339
 *         if s.sy != ',':
 *             if s.sy not in end_sy_set:
 *                 if parsed_type:             # <<<<<<<<<<<<<<
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 *             break
 */
        }

        /* "Cython/Compiler/Parsing.py":2338
 * 
 *         if s.sy != ',':
 *             if s.sy not in end_sy_set:             # <<<<<<<<<<<<<<
 *                 if parsed_type:
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 */
      }

      /* "Cython/Compiler/Parsing.py":2341
 *                 if parsed_type:
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     return positional_args, keyword_args
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":2337
 *                         pos=arg.pos)
 * 
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             if s.sy not in end_sy_set:
 *                 if parsed_type:
 */
    }

    /* "Cython/Compiler/Parsing.py":2342
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return positional_args, keyword_args
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":2343
 *             break
 *         s.next()
 *     return positional_args, keyword_args             # <<<<<<<<<<<<<<
 * 
 * def p_c_base_type(s, self_flag = 0, nonempty = 0, templates = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_positional_args);
  __Pyx_GIVEREF(__pyx_v_positional_args);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_positional_args);
  __Pyx_INCREF(__pyx_v_keyword_args);
  __Pyx_GIVEREF(__pyx_v_keyword_args);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_keyword_args);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2289
 * 
 * 
 * def p_positional_and_keyword_args(s, end_sy_set, templates = None):             # <<<<<<<<<<<<<<
 *     """
 *     Parses positional and keyword arguments. end_sy_set
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_positional_and_keyword_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_positional_args);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XDECREF(__pyx_v_ident);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XDECREF(__pyx_v_keyword_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2345
 *     return positional_args, keyword_args
 * 
 * def p_c_base_type(s, self_flag = 0, nonempty = 0, templates = None):             # <<<<<<<<<<<<<<
 *     # If self_flag is true, this is the base type for the
 *     # self argument of a C method of an extension type.
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3p_c_base_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type *__pyx_optional_args) {
  int __pyx_v_self_flag = ((int)0);
  int __pyx_v_nonempty = ((int)0);
  PyObject *__pyx_v_templates = ((PyObject *)Py_None);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_complex_base_type __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_simple_base_type __pyx_t_4;
  __Pyx_RefNannySetupContext("p_c_base_type", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_self_flag = __pyx_optional_args->self_flag;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_nonempty = __pyx_optional_args->nonempty;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_templates = __pyx_optional_args->templates;
        }
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":2348
 *     # If self_flag is true, this is the base type for the
 *     # self argument of a C method of an extension type.
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         return p_c_complex_base_type(s, templates = templates)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2349
 *     # self argument of a C method of an extension type.
 *     if s.sy == '(':
 *         return p_c_complex_base_type(s, templates = templates)             # <<<<<<<<<<<<<<
 *     else:
 *         return p_c_simple_base_type(s, self_flag, nonempty = nonempty, templates = templates)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3.__pyx_n = 1;
    __pyx_t_3.templates = __pyx_v_templates;
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_complex_base_type(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2348
 *     # If self_flag is true, this is the base type for the
 *     # self argument of a C method of an extension type.
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         return p_c_complex_base_type(s, templates = templates)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":2351
 *         return p_c_complex_base_type(s, templates = templates)
 *     else:
 *         return p_c_simple_base_type(s, self_flag, nonempty = nonempty, templates = templates)             # <<<<<<<<<<<<<<
 * 
 * def p_calling_convention(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.templates = __pyx_v_templates;
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_base_type(__pyx_v_s, __pyx_v_self_flag, __pyx_v_nonempty, &__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2345
 *     return positional_args, keyword_args
 * 
 * def p_c_base_type(s, self_flag = 0, nonempty = 0, templates = None):             # <<<<<<<<<<<<<<
 *     # If self_flag is true, this is the base type for the
 *     # self argument of a C method of an extension type.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3p_c_base_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_3p_c_base_type = {"p_c_base_type", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_3p_c_base_type, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_3p_c_base_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s = 0;
  int __pyx_v_self_flag;
  int __pyx_v_nonempty;
  PyObject *__pyx_v_templates = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_c_base_type (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_self_flag,&__pyx_n_s_nonempty,&__pyx_n_s_templates,0};
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self_flag);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nonempty);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_templates);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "p_c_base_type") < 0)) __PYX_ERR(0, 2345, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_s = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)values[0]);
    if (values[1]) {
      __pyx_v_self_flag = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_self_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2345, __pyx_L3_error)
    } else {
      __pyx_v_self_flag = ((int)0);
    }
    if (values[2]) {
      __pyx_v_nonempty = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_nonempty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2345, __pyx_L3_error)
    } else {
      __pyx_v_nonempty = ((int)0);
    }
    __pyx_v_templates = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("p_c_base_type", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2345, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s), __pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner, 1, "s", 0))) __PYX_ERR(0, 2345, __pyx_L1_error)
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_2p_c_base_type(__pyx_self, __pyx_v_s, __pyx_v_self_flag, __pyx_v_nonempty, __pyx_v_templates);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_2p_c_base_type(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, int __pyx_v_self_flag, int __pyx_v_nonempty, PyObject *__pyx_v_templates) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type __pyx_t_2;
  __Pyx_RefNannySetupContext("p_c_base_type", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.self_flag = __pyx_v_self_flag;
  __pyx_t_2.nonempty = __pyx_v_nonempty;
  __pyx_t_2.templates = __pyx_v_templates;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2353
 *         return p_c_simple_base_type(s, self_flag, nonempty = nonempty, templates = templates)
 * 
 * def p_calling_convention(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:
 *         result = s.systring
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_calling_convention(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_calling_convention", 0);

  /* "Cython/Compiler/Parsing.py":2354
 * 
 * def p_calling_convention(s):
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:             # <<<<<<<<<<<<<<
 *         result = s.systring
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2354, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2354, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2355
 * def p_calling_convention(s):
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:
 *         result = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         return result
 */
    __pyx_t_4 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_v_result = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2356
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:
 *         result = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         return result
 *     else:
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2356, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2357
 *         result = s.systring
 *         s.next()
 *         return result             # <<<<<<<<<<<<<<
 *     else:
 *         return ""
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_result);
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2354
 * 
 * def p_calling_convention(s):
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:             # <<<<<<<<<<<<<<
 *         result = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":2359
 *         return result
 *     else:
 *         return ""             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__50);
    __pyx_r = __pyx_kp_u__50;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2353
 *         return p_c_simple_base_type(s, self_flag, nonempty = nonempty, templates = templates)
 * 
 * def p_calling_convention(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:
 *         result = s.systring
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_calling_convention", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2366
 * 
 * 
 * def p_c_complex_base_type(s, templates = None):             # <<<<<<<<<<<<<<
 *     # s.sy == '('
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_complex_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_complex_base_type *__pyx_optional_args) {
  PyObject *__pyx_v_templates = ((PyObject *)Py_None);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_declarator = NULL;
  PyObject *__pyx_v_type_node = NULL;
  PyObject *__pyx_v_components = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  __Pyx_RefNannySetupContext("p_c_complex_base_type", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_templates = __pyx_optional_args->templates;
    }
  }

  /* "Cython/Compiler/Parsing.py":2368
 * def p_c_complex_base_type(s, templates = None):
 *     # s.sy == '('
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     base_type = p_c_base_type(s, templates=templates)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2369
 *     # s.sy == '('
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     base_type = p_c_base_type(s, templates=templates)
 *     declarator = p_c_declarator(s, empty=True)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2370
 *     pos = s.position()
 *     s.next()
 *     base_type = p_c_base_type(s, templates=templates)             # <<<<<<<<<<<<<<
 *     declarator = p_c_declarator(s, empty=True)
 *     type_node = Nodes.CComplexBaseTypeNode(
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 2370, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_base_type = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2371
 *     s.next()
 *     base_type = p_c_base_type(s, templates=templates)
 *     declarator = p_c_declarator(s, empty=True)             # <<<<<<<<<<<<<<
 *     type_node = Nodes.CComplexBaseTypeNode(
 *         pos, base_type=base_type, declarator=declarator)
 */
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_s));
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_empty, Py_True) < 0) __PYX_ERR(0, 2371, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_declarator = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2372
 *     base_type = p_c_base_type(s, templates=templates)
 *     declarator = p_c_declarator(s, empty=True)
 *     type_node = Nodes.CComplexBaseTypeNode(             # <<<<<<<<<<<<<<
 *         pos, base_type=base_type, declarator=declarator)
 *     if s.sy == ',':
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CComplexBaseTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":2373
 *     declarator = p_c_declarator(s, empty=True)
 *     type_node = Nodes.CComplexBaseTypeNode(
 *         pos, base_type=base_type, declarator=declarator)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         components = [type_node]
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 2373, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 2373, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2372
 *     base_type = p_c_base_type(s, templates=templates)
 *     declarator = p_c_declarator(s, empty=True)
 *     type_node = Nodes.CComplexBaseTypeNode(             # <<<<<<<<<<<<<<
 *         pos, base_type=base_type, declarator=declarator)
 *     if s.sy == ',':
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_type_node = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2374
 *     type_node = Nodes.CComplexBaseTypeNode(
 *         pos, base_type=base_type, declarator=declarator)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         components = [type_node]
 *         while s.sy == ',':
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2374, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2375
 *         pos, base_type=base_type, declarator=declarator)
 *     if s.sy == ',':
 *         components = [type_node]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_type_node);
    __Pyx_GIVEREF(__pyx_v_type_node);
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_type_node);
    __pyx_v_components = ((PyObject*)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2376
 *     if s.sy == ',':
 *         components = [type_node]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == ')':
 */
    while (1) {
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2376, __pyx_L1_error)
      if (!__pyx_t_5) break;

      /* "Cython/Compiler/Parsing.py":2377
 *         components = [type_node]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == ')':
 *                 break
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2377, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2378
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy == ')':             # <<<<<<<<<<<<<<
 *                 break
 *             base_type = p_c_base_type(s, templates=templates)
 */
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__31, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2378, __pyx_L1_error)
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":2379
 *             s.next()
 *             if s.sy == ')':
 *                 break             # <<<<<<<<<<<<<<
 *             base_type = p_c_base_type(s, templates=templates)
 *             declarator = p_c_declarator(s, empty=True)
 */
        goto __pyx_L5_break;

        /* "Cython/Compiler/Parsing.py":2378
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy == ')':             # <<<<<<<<<<<<<<
 *                 break
 *             base_type = p_c_base_type(s, templates=templates)
 */
      }

      /* "Cython/Compiler/Parsing.py":2380
 *             if s.sy == ')':
 *                 break
 *             base_type = p_c_base_type(s, templates=templates)             # <<<<<<<<<<<<<<
 *             declarator = p_c_declarator(s, empty=True)
 *             components.append(Nodes.CComplexBaseTypeNode(
 */
      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2380, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2380, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_s));
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2380, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 2380, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_base_type, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2381
 *                 break
 *             base_type = p_c_base_type(s, templates=templates)
 *             declarator = p_c_declarator(s, empty=True)             # <<<<<<<<<<<<<<
 *             components.append(Nodes.CComplexBaseTypeNode(
 *                 pos, base_type=base_type, declarator=declarator))
 */
      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_empty, Py_True) < 0) __PYX_ERR(0, 2381, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF_SET(__pyx_v_declarator, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2382
 *             base_type = p_c_base_type(s, templates=templates)
 *             declarator = p_c_declarator(s, empty=True)
 *             components.append(Nodes.CComplexBaseTypeNode(             # <<<<<<<<<<<<<<
 *                 pos, base_type=base_type, declarator=declarator))
 *         type_node = Nodes.CTupleBaseTypeNode(pos, components = components)
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CComplexBaseTypeNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);

      /* "Cython/Compiler/Parsing.py":2383
 *             declarator = p_c_declarator(s, empty=True)
 *             components.append(Nodes.CComplexBaseTypeNode(
 *                 pos, base_type=base_type, declarator=declarator))             # <<<<<<<<<<<<<<
 *         type_node = Nodes.CTupleBaseTypeNode(pos, components = components)
 * 
 */
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 2383, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 2383, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":2382
 *             base_type = p_c_base_type(s, templates=templates)
 *             declarator = p_c_declarator(s, empty=True)
 *             components.append(Nodes.CComplexBaseTypeNode(             # <<<<<<<<<<<<<<
 *                 pos, base_type=base_type, declarator=declarator))
 *         type_node = Nodes.CTupleBaseTypeNode(pos, components = components)
 */
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_components, __pyx_t_1); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 2382, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L5_break:;

    /* "Cython/Compiler/Parsing.py":2384
 *             components.append(Nodes.CComplexBaseTypeNode(
 *                 pos, base_type=base_type, declarator=declarator))
 *         type_node = Nodes.CTupleBaseTypeNode(pos, components = components)             # <<<<<<<<<<<<<<
 * 
 *     s.expect(')')
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CTupleBaseTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_components, __pyx_v_components) < 0) __PYX_ERR(0, 2384, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2374
 *     type_node = Nodes.CComplexBaseTypeNode(
 *         pos, base_type=base_type, declarator=declarator)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         components = [type_node]
 *         while s.sy == ',':
 */
  }

  /* "Cython/Compiler/Parsing.py":2386
 *         type_node = Nodes.CTupleBaseTypeNode(pos, components = components)
 * 
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_5 == -2)) __PYX_ERR(0, 2386, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2387
 * 
 *     s.expect(')')
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2387, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2388
 *     s.expect(')')
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2388, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2389
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)             # <<<<<<<<<<<<<<
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access(__pyx_v_s, __pyx_v_type_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2389, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2388
 *     s.expect(')')
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 */
      goto __pyx_L8;
    }

    /* "Cython/Compiler/Parsing.py":2391
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)             # <<<<<<<<<<<<<<
 *     return type_node
 * 
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template(__pyx_v_s, __pyx_v_type_node, __pyx_v_templates); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2391, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_4);
      __pyx_t_4 = 0;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":2387
 * 
 *     s.expect(')')
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)
 */
  }

  /* "Cython/Compiler/Parsing.py":2392
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)
 *     return type_node             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_type_node);
  __pyx_r = __pyx_v_type_node;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2366
 * 
 * 
 * def p_c_complex_base_type(s, templates = None):             # <<<<<<<<<<<<<<
 *     # s.sy == '('
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_complex_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XDECREF(__pyx_v_type_node);
  __Pyx_XDECREF(__pyx_v_components);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2395
 * 
 * 
 * def p_c_simple_base_type(s, self_flag, nonempty, templates = None):             # <<<<<<<<<<<<<<
 *     #print "p_c_simple_base_type: self_flag =", self_flag, nonempty
 *     is_basic = 0
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, int __pyx_v_self_flag, int __pyx_v_nonempty, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_simple_base_type *__pyx_optional_args) {
  PyObject *__pyx_v_templates = ((PyObject *)Py_None);
  long __pyx_v_is_basic;
  PyObject *__pyx_v_signed = NULL;
  PyObject *__pyx_v_longness = NULL;
  long __pyx_v_complex;
  PyObject *__pyx_v_module_path = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_type_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type __pyx_t_9;
  int __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  __Pyx_RefNannySetupContext("p_c_simple_base_type", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_templates = __pyx_optional_args->templates;
    }
  }

  /* "Cython/Compiler/Parsing.py":2397
 * def p_c_simple_base_type(s, self_flag, nonempty, templates = None):
 *     #print "p_c_simple_base_type: self_flag =", self_flag, nonempty
 *     is_basic = 0             # <<<<<<<<<<<<<<
 *     signed = 1
 *     longness = 0
 */
  __pyx_v_is_basic = 0;

  /* "Cython/Compiler/Parsing.py":2398
 *     #print "p_c_simple_base_type: self_flag =", self_flag, nonempty
 *     is_basic = 0
 *     signed = 1             # <<<<<<<<<<<<<<
 *     longness = 0
 *     complex = 0
 */
  __Pyx_INCREF(__pyx_int_1);
  __pyx_v_signed = __pyx_int_1;

  /* "Cython/Compiler/Parsing.py":2399
 *     is_basic = 0
 *     signed = 1
 *     longness = 0             # <<<<<<<<<<<<<<
 *     complex = 0
 *     module_path = []
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_longness = __pyx_int_0;

  /* "Cython/Compiler/Parsing.py":2400
 *     signed = 1
 *     longness = 0
 *     complex = 0             # <<<<<<<<<<<<<<
 *     module_path = []
 *     pos = s.position()
 */
  __pyx_v_complex = 0;

  /* "Cython/Compiler/Parsing.py":2401
 *     longness = 0
 *     complex = 0
 *     module_path = []             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     if not s.sy == 'IDENT':
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module_path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2402
 *     complex = 0
 *     module_path = []
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if not s.sy == 'IDENT':
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2403
 *     module_path = []
 *     pos = s.position()
 *     if not s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)
 *     if s.systring == 'const':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2403, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2404
 *     pos = s.position()
 *     if not s.sy == 'IDENT':
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)             # <<<<<<<<<<<<<<
 *     if s.systring == 'const':
 *         s.next()
 */
    __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Expected_an_identifier_found_s, __pyx_v_s->sy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_t_4};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2404, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_t_4};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2404, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2404, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2404, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2403
 *     module_path = []
 *     pos = s.position()
 *     if not s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)
 *     if s.systring == 'const':
 */
  }

  /* "Cython/Compiler/Parsing.py":2405
 *     if not s.sy == 'IDENT':
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)
 *     if s.systring == 'const':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_type = p_c_base_type(s,
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_const, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2405, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2406
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)
 *     if s.systring == 'const':
 *         s.next()             # <<<<<<<<<<<<<<
 *         base_type = p_c_base_type(s,
 *             self_flag = self_flag, nonempty = nonempty, templates = templates)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2407
 *     if s.systring == 'const':
 *         s.next()
 *         base_type = p_c_base_type(s,             # <<<<<<<<<<<<<<
 *             self_flag = self_flag, nonempty = nonempty, templates = templates)
 *         return Nodes.CConstTypeNode(pos, base_type = base_type)
 */
    __pyx_t_9.__pyx_n = 3;
    __pyx_t_9.self_flag = __pyx_v_self_flag;
    __pyx_t_9.nonempty = __pyx_v_nonempty;
    __pyx_t_9.templates = __pyx_v_templates;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, &__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2407, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_base_type = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2409
 *         base_type = p_c_base_type(s,
 *             self_flag = self_flag, nonempty = nonempty, templates = templates)
 *         return Nodes.CConstTypeNode(pos, base_type = base_type)             # <<<<<<<<<<<<<<
 *     if looking_at_base_type(s):
 *         #print "p_c_simple_base_type: looking_at_base_type at", s.position()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CConstTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2409, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2409, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2409, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 2409, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2409, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2405
 *     if not s.sy == 'IDENT':
 *         error(pos, "Expected an identifier, found '%s'" % s.sy)
 *     if s.systring == 'const':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_type = p_c_base_type(s,
 */
  }

  /* "Cython/Compiler/Parsing.py":2410
 *             self_flag = self_flag, nonempty = nonempty, templates = templates)
 *         return Nodes.CConstTypeNode(pos, base_type = base_type)
 *     if looking_at_base_type(s):             # <<<<<<<<<<<<<<
 *         #print "p_c_simple_base_type: looking_at_base_type at", s.position()
 *         is_basic = 1
 */
  __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_base_type(__pyx_v_s); if (unlikely(__pyx_t_3 == -2)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2412
 *     if looking_at_base_type(s):
 *         #print "p_c_simple_base_type: looking_at_base_type at", s.position()
 *         is_basic = 1             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT' and s.systring in special_basic_c_types:
 *             signed, longness = special_basic_c_types[s.systring]
 */
    __pyx_v_is_basic = 1;

    /* "Cython/Compiler/Parsing.py":2413
 *         #print "p_c_simple_base_type: looking_at_base_type at", s.position()
 *         is_basic = 1
 *         if s.sy == 'IDENT' and s.systring in special_basic_c_types:             # <<<<<<<<<<<<<<
 *             signed, longness = special_basic_c_types[s.systring]
 *             name = s.systring
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2413, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L7_bool_binop_done;
    }
    if (unlikely(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 2413, __pyx_L1_error)
    }
    __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2413, __pyx_L1_error)
    __pyx_t_10 = (__pyx_t_3 != 0);
    __pyx_t_2 = __pyx_t_10;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2414
 *         is_basic = 1
 *         if s.sy == 'IDENT' and s.systring in special_basic_c_types:
 *             signed, longness = special_basic_c_types[s.systring]             # <<<<<<<<<<<<<<
 *             name = s.systring
 *             s.next()
 */
      if (unlikely(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 2414, __pyx_L1_error)
      }
      __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types, __pyx_v_s->systring); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        #if !CYTHON_COMPILING_IN_PYPY
        Py_ssize_t size = Py_SIZE(sequence);
        #else
        Py_ssize_t size = PySequence_Size(sequence);
        #endif
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2414, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_5);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2414, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2414, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2414, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_8)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_5 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_5)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_1), 2) < 0) __PYX_ERR(0, 2414, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L10_unpacking_done;
        __pyx_L9_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2414, __pyx_L1_error)
        __pyx_L10_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_signed, __pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_DECREF_SET(__pyx_v_longness, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":2415
 *         if s.sy == 'IDENT' and s.systring in special_basic_c_types:
 *             signed, longness = special_basic_c_types[s.systring]
 *             name = s.systring             # <<<<<<<<<<<<<<
 *             s.next()
 *         else:
 */
      __pyx_t_4 = __pyx_v_s->systring;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v_name = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2416
 *             signed, longness = special_basic_c_types[s.systring]
 *             name = s.systring
 *             s.next()             # <<<<<<<<<<<<<<
 *         else:
 *             signed, longness = p_sign_and_longness(s)
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2413
 *         #print "p_c_simple_base_type: looking_at_base_type at", s.position()
 *         is_basic = 1
 *         if s.sy == 'IDENT' and s.systring in special_basic_c_types:             # <<<<<<<<<<<<<<
 *             signed, longness = special_basic_c_types[s.systring]
 *             name = s.systring
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2418
 *             s.next()
 *         else:
 *             signed, longness = p_sign_and_longness(s)             # <<<<<<<<<<<<<<
 *             if s.sy == 'IDENT' and s.systring in basic_c_type_names:
 *                 name = s.systring
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_sign_and_longness(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2418, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        #if !CYTHON_COMPILING_IN_PYPY
        Py_ssize_t size = Py_SIZE(sequence);
        #else
        Py_ssize_t size = PySequence_Size(sequence);
        #endif
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2418, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_8);
        #else
        __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2418, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2418, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2418, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext;
        index = 0; __pyx_t_5 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_5)) goto __pyx_L11_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_8)) goto __pyx_L11_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_1), 2) < 0) __PYX_ERR(0, 2418, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L12_unpacking_done;
        __pyx_L11_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2418, __pyx_L1_error)
        __pyx_L12_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_signed, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_longness, __pyx_t_8);
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":2419
 *         else:
 *             signed, longness = p_sign_and_longness(s)
 *             if s.sy == 'IDENT' and s.systring in basic_c_type_names:             # <<<<<<<<<<<<<<
 *                 name = s.systring
 *                 s.next()
 */
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2419, __pyx_L1_error)
      if (__pyx_t_10) {
      } else {
        __pyx_t_2 = __pyx_t_10;
        goto __pyx_L14_bool_binop_done;
      }
      __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2419, __pyx_L1_error)
      __pyx_t_3 = (__pyx_t_10 != 0);
      __pyx_t_2 = __pyx_t_3;
      __pyx_L14_bool_binop_done:;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2420
 *             signed, longness = p_sign_and_longness(s)
 *             if s.sy == 'IDENT' and s.systring in basic_c_type_names:
 *                 name = s.systring             # <<<<<<<<<<<<<<
 *                 s.next()
 *             else:
 */
        __pyx_t_4 = __pyx_v_s->systring;
        __Pyx_INCREF(__pyx_t_4);
        __pyx_v_name = __pyx_t_4;
        __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2421
 *             if s.sy == 'IDENT' and s.systring in basic_c_type_names:
 *                 name = s.systring
 *                 s.next()             # <<<<<<<<<<<<<<
 *             else:
 *                 name = 'int'  # long [int], short [int], long [int] complex, etc.
 */
        __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2421, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2419
 *         else:
 *             signed, longness = p_sign_and_longness(s)
 *             if s.sy == 'IDENT' and s.systring in basic_c_type_names:             # <<<<<<<<<<<<<<
 *                 name = s.systring
 *                 s.next()
 */
        goto __pyx_L13;
      }

      /* "Cython/Compiler/Parsing.py":2423
 *                 s.next()
 *             else:
 *                 name = 'int'  # long [int], short [int], long [int] complex, etc.             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT' and s.systring == 'complex':
 *             complex = 1
 */
      /*else*/ {
        __Pyx_INCREF(__pyx_n_u_int);
        __pyx_v_name = __pyx_n_u_int;
      }
      __pyx_L13:;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2424
 *             else:
 *                 name = 'int'  # long [int], short [int], long [int] complex, etc.
 *         if s.sy == 'IDENT' and s.systring == 'complex':             # <<<<<<<<<<<<<<
 *             complex = 1
 *             s.next()
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2424, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_complex, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2424, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_3;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2425
 *                 name = 'int'  # long [int], short [int], long [int] complex, etc.
 *         if s.sy == 'IDENT' and s.systring == 'complex':
 *             complex = 1             # <<<<<<<<<<<<<<
 *             s.next()
 *     elif looking_at_dotted_name(s):
 */
      __pyx_v_complex = 1;

      /* "Cython/Compiler/Parsing.py":2426
 *         if s.sy == 'IDENT' and s.systring == 'complex':
 *             complex = 1
 *             s.next()             # <<<<<<<<<<<<<<
 *     elif looking_at_dotted_name(s):
 *         #print "p_c_simple_base_type: looking_at_type_name at", s.position()
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2426, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2424
 *             else:
 *                 name = 'int'  # long [int], short [int], long [int] complex, etc.
 *         if s.sy == 'IDENT' and s.systring == 'complex':             # <<<<<<<<<<<<<<
 *             complex = 1
 *             s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":2410
 *             self_flag = self_flag, nonempty = nonempty, templates = templates)
 *         return Nodes.CConstTypeNode(pos, base_type = base_type)
 *     if looking_at_base_type(s):             # <<<<<<<<<<<<<<
 *         #print "p_c_simple_base_type: looking_at_base_type at", s.position()
 *         is_basic = 1
 */
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":2427
 *             complex = 1
 *             s.next()
 *     elif looking_at_dotted_name(s):             # <<<<<<<<<<<<<<
 *         #print "p_c_simple_base_type: looking_at_type_name at", s.position()
 *         name = s.systring
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_dotted_name(__pyx_v_s); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2427, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2429
 *     elif looking_at_dotted_name(s):
 *         #print "p_c_simple_base_type: looking_at_type_name at", s.position()
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         while s.sy == '.':
 */
    __pyx_t_4 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2430
 *         #print "p_c_simple_base_type: looking_at_type_name at", s.position()
 *         name = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         while s.sy == '.':
 *             module_path.append(name)
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2431
 *         name = s.systring
 *         s.next()
 *         while s.sy == '.':             # <<<<<<<<<<<<<<
 *             module_path.append(name)
 *             s.next()
 */
    while (1) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2431, __pyx_L1_error)
      if (!__pyx_t_3) break;

      /* "Cython/Compiler/Parsing.py":2432
 *         s.next()
 *         while s.sy == '.':
 *             module_path.append(name)             # <<<<<<<<<<<<<<
 *             s.next()
 *             name = p_ident(s)
 */
      __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_module_path, __pyx_v_name); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 2432, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":2433
 *         while s.sy == '.':
 *             module_path.append(name)
 *             s.next()             # <<<<<<<<<<<<<<
 *             name = p_ident(s)
 *     else:
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2433, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2434
 *             module_path.append(name)
 *             s.next()
 *             name = p_ident(s)             # <<<<<<<<<<<<<<
 *     else:
 *         name = s.systring
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2434, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4);
      __pyx_t_4 = 0;
    }

    /* "Cython/Compiler/Parsing.py":2427
 *             complex = 1
 *             s.next()
 *     elif looking_at_dotted_name(s):             # <<<<<<<<<<<<<<
 *         #print "p_c_simple_base_type: looking_at_type_name at", s.position()
 *         name = s.systring
 */
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":2436
 *             name = p_ident(s)
 *     else:
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         if nonempty and s.sy != 'IDENT':
 */
  /*else*/ {
    __pyx_t_4 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2437
 *     else:
 *         name = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         if nonempty and s.sy != 'IDENT':
 *             # Make sure this is not a declaration of a variable or function.
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2438
 *         name = s.systring
 *         s.next()
 *         if nonempty and s.sy != 'IDENT':             # <<<<<<<<<<<<<<
 *             # Make sure this is not a declaration of a variable or function.
 *             if s.sy == '(':
 */
    __pyx_t_2 = (__pyx_v_nonempty != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L22_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2438, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_2;
    __pyx_L22_bool_binop_done:;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2440
 *         if nonempty and s.sy != 'IDENT':
 *             # Make sure this is not a declaration of a variable or function.
 *             if s.sy == '(':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'
 */
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2440, __pyx_L1_error)
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2441
 *             # Make sure this is not a declaration of a variable or function.
 *             if s.sy == '(':
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):
 */
        __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2441, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2442
 *             if s.sy == '(':
 *                 s.next()
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'             # <<<<<<<<<<<<<<
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):
 *                     s.put_back('(', '(')
 */
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2442, __pyx_L1_error)
        if (!__pyx_t_2) {
        } else {
          __pyx_t_3 = __pyx_t_2;
          goto __pyx_L26_bool_binop_done;
        }
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2442, __pyx_L1_error)
        if (!__pyx_t_2) {
        } else {
          __pyx_t_3 = __pyx_t_2;
          goto __pyx_L26_bool_binop_done;
        }

        /* "Cython/Compiler/Parsing.py":2443
 *                 s.next()
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):             # <<<<<<<<<<<<<<
 *                     s.put_back('(', '(')
 *                 else:
 */
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__13, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2442, __pyx_L1_error)
        if (!__pyx_t_2) {
        } else {
          __pyx_t_3 = __pyx_t_2;
          goto __pyx_L26_bool_binop_done;
        }
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2443, __pyx_L1_error)
        if (__pyx_t_2) {
        } else {
          __pyx_t_3 = __pyx_t_2;
          goto __pyx_L26_bool_binop_done;
        }
        __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2443, __pyx_L1_error)
        __pyx_t_10 = (__pyx_t_2 != 0);
        __pyx_t_3 = __pyx_t_10;
        __pyx_L26_bool_binop_done:;

        /* "Cython/Compiler/Parsing.py":2442
 *             if s.sy == '(':
 *                 s.next()
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'             # <<<<<<<<<<<<<<
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):
 *                     s.put_back('(', '(')
 */
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":2444
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):
 *                     s.put_back('(', '(')             # <<<<<<<<<<<<<<
 *                 else:
 *                     s.put_back('(', '(')
 */
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__112, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":2442
 *             if s.sy == '(':
 *                 s.next()
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'             # <<<<<<<<<<<<<<
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):
 *                     s.put_back('(', '(')
 */
          goto __pyx_L25;
        }

        /* "Cython/Compiler/Parsing.py":2446
 *                     s.put_back('(', '(')
 *                 else:
 *                     s.put_back('(', '(')             # <<<<<<<<<<<<<<
 *                     s.put_back('IDENT', name)
 *                     name = None
 */
        /*else*/ {
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__113, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "Cython/Compiler/Parsing.py":2447
 *                 else:
 *                     s.put_back('(', '(')
 *                     s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *                     name = None
 *             elif s.sy not in ('*', '**', '[', '&'):
 */
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2447, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_5 = NULL;
          __pyx_t_7 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_8, function);
              __pyx_t_7 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_n_u_IDENT, __pyx_v_name};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2447, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_4);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_n_u_IDENT, __pyx_v_name};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2447, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_4);
          } else
          #endif
          {
            __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_n_u_IDENT);
            __Pyx_GIVEREF(__pyx_n_u_IDENT);
            PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_n_u_IDENT);
            __Pyx_INCREF(__pyx_v_name);
            __Pyx_GIVEREF(__pyx_v_name);
            PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_name);
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "Cython/Compiler/Parsing.py":2448
 *                     s.put_back('(', '(')
 *                     s.put_back('IDENT', name)
 *                     name = None             # <<<<<<<<<<<<<<
 *             elif s.sy not in ('*', '**', '[', '&'):
 *                 s.put_back('IDENT', name)
 */
          __Pyx_INCREF(Py_None);
          __Pyx_DECREF_SET(__pyx_v_name, Py_None);
        }
        __pyx_L25:;

        /* "Cython/Compiler/Parsing.py":2440
 *         if nonempty and s.sy != 'IDENT':
 *             # Make sure this is not a declaration of a variable or function.
 *             if s.sy == '(':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'
 */
        goto __pyx_L24;
      }

      /* "Cython/Compiler/Parsing.py":2449
 *                     s.put_back('IDENT', name)
 *                     name = None
 *             elif s.sy not in ('*', '**', '[', '&'):             # <<<<<<<<<<<<<<
 *                 s.put_back('IDENT', name)
 *                 name = None
 */
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_4 = __pyx_v_s->sy;
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__6, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2449, __pyx_L1_error)
      if (__pyx_t_10) {
      } else {
        __pyx_t_3 = __pyx_t_10;
        goto __pyx_L31_bool_binop_done;
      }
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__38, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2449, __pyx_L1_error)
      if (__pyx_t_10) {
      } else {
        __pyx_t_3 = __pyx_t_10;
        goto __pyx_L31_bool_binop_done;
      }
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__36, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2449, __pyx_L1_error)
      if (__pyx_t_10) {
      } else {
        __pyx_t_3 = __pyx_t_10;
        goto __pyx_L31_bool_binop_done;
      }
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__13, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2449, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_10;
      __pyx_L31_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_10 = (__pyx_t_3 != 0);
      if (__pyx_t_10) {

        /* "Cython/Compiler/Parsing.py":2450
 *                     name = None
 *             elif s.sy not in ('*', '**', '[', '&'):
 *                 s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *                 name = None
 * 
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2450, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_n_u_IDENT, __pyx_v_name};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2450, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_n_u_IDENT, __pyx_v_name};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2450, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        {
          __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2450, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (__pyx_t_1) {
            __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
          }
          __Pyx_INCREF(__pyx_n_u_IDENT);
          __Pyx_GIVEREF(__pyx_n_u_IDENT);
          PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_n_u_IDENT);
          __Pyx_INCREF(__pyx_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_v_name);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2450, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2451
 *             elif s.sy not in ('*', '**', '[', '&'):
 *                 s.put_back('IDENT', name)
 *                 name = None             # <<<<<<<<<<<<<<
 * 
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,
 */
        __Pyx_INCREF(Py_None);
        __Pyx_DECREF_SET(__pyx_v_name, Py_None);

        /* "Cython/Compiler/Parsing.py":2449
 *                     s.put_back('IDENT', name)
 *                     name = None
 *             elif s.sy not in ('*', '**', '[', '&'):             # <<<<<<<<<<<<<<
 *                 s.put_back('IDENT', name)
 *                 name = None
 */
      }
      __pyx_L24:;

      /* "Cython/Compiler/Parsing.py":2438
 *         name = s.systring
 *         s.next()
 *         if nonempty and s.sy != 'IDENT':             # <<<<<<<<<<<<<<
 *             # Make sure this is not a declaration of a variable or function.
 *             if s.sy == '(':
 */
    }
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2453
 *                 name = None
 * 
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, module_path = module_path,
 *         is_basic_c_type = is_basic, signed = signed,
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CSimpleBaseTypeNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2454
 * 
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,
 *         name = name, module_path = module_path,             # <<<<<<<<<<<<<<
 *         is_basic_c_type = is_basic, signed = signed,
 *         complex = complex, longness = longness,
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_module_path, __pyx_v_module_path) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2455
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,
 *         name = name, module_path = module_path,
 *         is_basic_c_type = is_basic, signed = signed,             # <<<<<<<<<<<<<<
 *         complex = complex, longness = longness,
 *         is_self_arg = self_flag, templates = templates)
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_is_basic); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_is_basic_c_type, __pyx_t_1) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_signed, __pyx_v_signed) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2456
 *         name = name, module_path = module_path,
 *         is_basic_c_type = is_basic, signed = signed,
 *         complex = complex, longness = longness,             # <<<<<<<<<<<<<<
 *         is_self_arg = self_flag, templates = templates)
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_complex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_complex, __pyx_t_1) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_longness, __pyx_v_longness) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2457
 *         is_basic_c_type = is_basic, signed = signed,
 *         complex = complex, longness = longness,
 *         is_self_arg = self_flag, templates = templates)             # <<<<<<<<<<<<<<
 * 
 *     #    declarations here.
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_is_self_arg, __pyx_t_1) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2453
 *                 name = None
 * 
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, module_path = module_path,
 *         is_basic_c_type = is_basic, signed = signed,
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_type_node = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2460
 * 
 *     #    declarations here.
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)
 */
  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2460, __pyx_L1_error)
  if (__pyx_t_10) {

    /* "Cython/Compiler/Parsing.py":2461
 *     #    declarations here.
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2461, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2461, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_10) {

      /* "Cython/Compiler/Parsing.py":2462
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)             # <<<<<<<<<<<<<<
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access(__pyx_v_s, __pyx_v_type_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2462, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2461
 *     #    declarations here.
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 */
      goto __pyx_L36;
    }

    /* "Cython/Compiler/Parsing.py":2464
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)             # <<<<<<<<<<<<<<
 * 
 *     if s.sy == '.':
 */
    /*else*/ {
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template(__pyx_v_s, __pyx_v_type_node, __pyx_v_templates); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2464, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_1);
      __pyx_t_1 = 0;
    }
    __pyx_L36:;

    /* "Cython/Compiler/Parsing.py":2460
 * 
 *     #    declarations here.
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)
 */
  }

  /* "Cython/Compiler/Parsing.py":2466
 *             type_node = p_buffer_or_template(s, type_node, templates)
 * 
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         s.next()
 *         name = p_ident(s)
 */
  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2466, __pyx_L1_error)
  if (__pyx_t_10) {

    /* "Cython/Compiler/Parsing.py":2467
 * 
 *     if s.sy == '.':
 *         s.next()             # <<<<<<<<<<<<<<
 *         name = p_ident(s)
 *         type_node = Nodes.CNestedBaseTypeNode(pos, base_type = type_node, name = name)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2468
 *     if s.sy == '.':
 *         s.next()
 *         name = p_ident(s)             # <<<<<<<<<<<<<<
 *         type_node = Nodes.CNestedBaseTypeNode(pos, base_type = type_node, name = name)
 * 
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2469
 *         s.next()
 *         name = p_ident(s)
 *         type_node = Nodes.CNestedBaseTypeNode(pos, base_type = type_node, name = name)             # <<<<<<<<<<<<<<
 * 
 *     return type_node
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CNestedBaseTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_base_type, __pyx_v_type_node) < 0) __PYX_ERR(0, 2469, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 2469, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2466
 *             type_node = p_buffer_or_template(s, type_node, templates)
 * 
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         s.next()
 *         name = p_ident(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":2471
 *         type_node = Nodes.CNestedBaseTypeNode(pos, base_type = type_node, name = name)
 * 
 *     return type_node             # <<<<<<<<<<<<<<
 * 
 * def p_buffer_or_template(s, base_type_node, templates):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_type_node);
  __pyx_r = __pyx_v_type_node;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2395
 * 
 * 
 * def p_c_simple_base_type(s, self_flag, nonempty, templates = None):             # <<<<<<<<<<<<<<
 *     #print "p_c_simple_base_type: self_flag =", self_flag, nonempty
 *     is_basic = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_simple_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_signed);
  __Pyx_XDECREF(__pyx_v_longness);
  __Pyx_XDECREF(__pyx_v_module_path);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_type_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2473
 *     return type_node
 * 
 * def p_buffer_or_template(s, base_type_node, templates):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_base_type_node, PyObject *__pyx_v_templates) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_positional_args = NULL;
  PyObject *__pyx_v_keyword_args = NULL;
  PyObject *__pyx_v_keyword_dict = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  __Pyx_RefNannySetupContext("p_buffer_or_template", 0);
  __Pyx_INCREF(__pyx_v_base_type_node);

  /* "Cython/Compiler/Parsing.py":2475
 * def p_buffer_or_template(s, base_type_node, templates):
 *     # s.sy == '['
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     # Note that buffer_positional_options_count=1, so the only positional argument is dtype.
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2476
 *     # s.sy == '['
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     # Note that buffer_positional_options_count=1, so the only positional argument is dtype.
 *     # For templated types, all parameters are types.
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2480
 *     # For templated types, all parameters are types.
 *     positional_args, keyword_args = (
 *         p_positional_and_keyword_args(s, (']',), templates)             # <<<<<<<<<<<<<<
 *     )
 *     s.expect(']')
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.templates = __pyx_v_templates;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args(__pyx_v_s, __pyx_tuple__114, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2479, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 2479, __pyx_L1_error)
    __pyx_t_6 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2479, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }

  /* "Cython/Compiler/Parsing.py":2479
 *     # Note that buffer_positional_options_count=1, so the only positional argument is dtype.
 *     # For templated types, all parameters are types.
 *     positional_args, keyword_args = (             # <<<<<<<<<<<<<<
 *         p_positional_and_keyword_args(s, (']',), templates)
 *     )
 */
  __pyx_v_positional_args = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_keyword_args = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2482
 *         p_positional_and_keyword_args(s, (']',), templates)
 *     )
 *     s.expect(']')             # <<<<<<<<<<<<<<
 * 
 *     if s.sy == '[':
 */
  __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_7 == -2)) __PYX_ERR(0, 2482, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2484
 *     s.expect(']')
 * 
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         base_type_node = p_buffer_or_template(s, base_type_node, templates)
 * 
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2484, __pyx_L1_error)
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":2485
 * 
 *     if s.sy == '[':
 *         base_type_node = p_buffer_or_template(s, base_type_node, templates)             # <<<<<<<<<<<<<<
 * 
 *     keyword_dict = ExprNodes.DictNode(pos,
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template(__pyx_v_s, __pyx_v_base_type_node, __pyx_v_templates); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2485, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_base_type_node, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2484
 *     s.expect(']')
 * 
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         base_type_node = p_buffer_or_template(s, base_type_node, templates)
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":2487
 *         base_type_node = p_buffer_or_template(s, base_type_node, templates)
 * 
 *     keyword_dict = ExprNodes.DictNode(pos,             # <<<<<<<<<<<<<<
 *         key_value_pairs = [
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2488
 * 
 *     keyword_dict = ExprNodes.DictNode(pos,
 *         key_value_pairs = [             # <<<<<<<<<<<<<<
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *             for key, value in keyword_args
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  { /* enter inner scope */
    PyObject *__pyx_8genexpr3__pyx_v_key = NULL;
    PyObject *__pyx_8genexpr3__pyx_v_value = NULL;
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2488, __pyx_L8_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":2490
 *         key_value_pairs = [
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *             for key, value in keyword_args             # <<<<<<<<<<<<<<
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,
 */
    if (likely(PyList_CheckExact(__pyx_v_keyword_args)) || PyTuple_CheckExact(__pyx_v_keyword_args)) {
      __pyx_t_8 = __pyx_v_keyword_args; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_keyword_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2490, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2490, __pyx_L8_error)
    }
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2490, __pyx_L8_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2490, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2490, __pyx_L8_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2490, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        }
      } else {
        __pyx_t_11 = __pyx_t_10(__pyx_t_8);
        if (unlikely(!__pyx_t_11)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2490, __pyx_L8_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_11);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {
        PyObject* sequence = __pyx_t_11;
        #if !CYTHON_COMPILING_IN_PYPY
        Py_ssize_t size = Py_SIZE(sequence);
        #else
        Py_ssize_t size = PySequence_Size(sequence);
        #endif
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2490, __pyx_L8_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_12 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_13);
        #else
        __pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2490, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2490, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_14 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2490, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_6 = Py_TYPE(__pyx_t_14)->tp_iternext;
        index = 0; __pyx_t_12 = __pyx_t_6(__pyx_t_14); if (unlikely(!__pyx_t_12)) goto __pyx_L11_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_12);
        index = 1; __pyx_t_13 = __pyx_t_6(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L11_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_13);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_14), 2) < 0) __PYX_ERR(0, 2490, __pyx_L8_error)
        __pyx_t_6 = NULL;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        goto __pyx_L12_unpacking_done;
        __pyx_L11_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_6 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2490, __pyx_L8_error)
        __pyx_L12_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v_key, __pyx_t_12);
      __pyx_t_12 = 0;
      __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v_value, __pyx_t_13);
      __pyx_t_13 = 0;

      /* "Cython/Compiler/Parsing.py":2489
 *     keyword_dict = ExprNodes.DictNode(pos,
 *         key_value_pairs = [
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)             # <<<<<<<<<<<<<<
 *             for key, value in keyword_args
 *         ])
 */
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2489, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2489, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr3__pyx_v_key, __pyx_n_s_pos); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2489, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_pos, __pyx_t_12) < 0) __PYX_ERR(0, 2489, __pyx_L8_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_key, __pyx_8genexpr3__pyx_v_key) < 0) __PYX_ERR(0, 2489, __pyx_L8_error)
      if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_value, __pyx_8genexpr3__pyx_v_value) < 0) __PYX_ERR(0, 2489, __pyx_L8_error)
      __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_empty_tuple, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2489, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 2488, __pyx_L8_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

      /* "Cython/Compiler/Parsing.py":2490
 *         key_value_pairs = [
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *             for key, value in keyword_args             # <<<<<<<<<<<<<<
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,
 */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_key);
    __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_value);
    goto __pyx_L13_exit_scope;
    __pyx_L8_error:;
    __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_key);
    __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_value);
    goto __pyx_L1_error;
    __pyx_L13_exit_scope:;
  } /* exit inner scope */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_key_value_pairs, __pyx_t_5) < 0) __PYX_ERR(0, 2488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2487
 *         base_type_node = p_buffer_or_template(s, base_type_node, templates)
 * 
 *     keyword_dict = ExprNodes.DictNode(pos,             # <<<<<<<<<<<<<<
 *         key_value_pairs = [
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 */
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_keyword_dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2492
 *             for key, value in keyword_args
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,             # <<<<<<<<<<<<<<
 *         positional_args = positional_args,
 *         keyword_args = keyword_dict,
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_TemplatedTypeNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2493
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,
 *         positional_args = positional_args,             # <<<<<<<<<<<<<<
 *         keyword_args = keyword_dict,
 *         base_type_node = base_type_node)
 */
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_positional_args, __pyx_v_positional_args) < 0) __PYX_ERR(0, 2493, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2494
 *     result = Nodes.TemplatedTypeNode(pos,
 *         positional_args = positional_args,
 *         keyword_args = keyword_dict,             # <<<<<<<<<<<<<<
 *         base_type_node = base_type_node)
 *     return result
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_keyword_args, __pyx_v_keyword_dict) < 0) __PYX_ERR(0, 2493, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2495
 *         positional_args = positional_args,
 *         keyword_args = keyword_dict,
 *         base_type_node = base_type_node)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_type_node, __pyx_v_base_type_node) < 0) __PYX_ERR(0, 2493, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2492
 *             for key, value in keyword_args
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,             # <<<<<<<<<<<<<<
 *         positional_args = positional_args,
 *         keyword_args = keyword_dict,
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2496
 *         keyword_args = keyword_dict,
 *         base_type_node = base_type_node)
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_bracketed_base_type(s, base_type_node, nonempty, empty):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2473
 *     return type_node
 * 
 * def p_buffer_or_template(s, base_type_node, templates):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_buffer_or_template", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_positional_args);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XDECREF(__pyx_v_keyword_dict);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_base_type_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2498
 *     return result
 * 
 * def p_bracketed_base_type(s, base_type_node, nonempty, empty):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     if empty and not nonempty:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_bracketed_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_base_type_node, PyObject *__pyx_v_nonempty, PyObject *__pyx_v_empty) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("p_bracketed_base_type", 0);

  /* "Cython/Compiler/Parsing.py":2500
 * def p_bracketed_base_type(s, base_type_node, nonempty, empty):
 *     # s.sy == '['
 *     if empty and not nonempty:             # <<<<<<<<<<<<<<
 *         # sizeof-like thing.  Only anonymous C arrays allowed (int[SIZE]).
 *         return base_type_node
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_empty); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2500, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nonempty); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2500, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2502
 *     if empty and not nonempty:
 *         # sizeof-like thing.  Only anonymous C arrays allowed (int[SIZE]).
 *         return base_type_node             # <<<<<<<<<<<<<<
 *     elif not empty and nonempty:
 *         # declaration of either memoryview slice or buffer.
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_base_type_node);
    __pyx_r = __pyx_v_base_type_node;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2500
 * def p_bracketed_base_type(s, base_type_node, nonempty, empty):
 *     # s.sy == '['
 *     if empty and not nonempty:             # <<<<<<<<<<<<<<
 *         # sizeof-like thing.  Only anonymous C arrays allowed (int[SIZE]).
 *         return base_type_node
 */
  }

  /* "Cython/Compiler/Parsing.py":2503
 *         # sizeof-like thing.  Only anonymous C arrays allowed (int[SIZE]).
 *         return base_type_node
 *     elif not empty and nonempty:             # <<<<<<<<<<<<<<
 *         # declaration of either memoryview slice or buffer.
 *         if is_memoryviewslice_access(s):
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_empty); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nonempty); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2505
 *     elif not empty and nonempty:
 *         # declaration of either memoryview slice or buffer.
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2505, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2505, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2506
 *         # declaration of either memoryview slice or buffer.
 *         if is_memoryviewslice_access(s):
 *             return p_memoryviewslice_access(s, base_type_node)             # <<<<<<<<<<<<<<
 *         else:
 *             return p_buffer_or_template(s, base_type_node, None)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access(__pyx_v_s, __pyx_v_base_type_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2506, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2505
 *     elif not empty and nonempty:
 *         # declaration of either memoryview slice or buffer.
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":2508
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 *             return p_buffer_or_template(s, base_type_node, None)             # <<<<<<<<<<<<<<
 *             # return p_buffer_access(s, base_type_node)
 *     elif not empty and not nonempty:
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template(__pyx_v_s, __pyx_v_base_type_node, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2508, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":2503
 *         # sizeof-like thing.  Only anonymous C arrays allowed (int[SIZE]).
 *         return base_type_node
 *     elif not empty and nonempty:             # <<<<<<<<<<<<<<
 *         # declaration of either memoryview slice or buffer.
 *         if is_memoryviewslice_access(s):
 */
  }

  /* "Cython/Compiler/Parsing.py":2510
 *             return p_buffer_or_template(s, base_type_node, None)
 *             # return p_buffer_access(s, base_type_node)
 *     elif not empty and not nonempty:             # <<<<<<<<<<<<<<
 *         # only anonymous C arrays and memoryview slice arrays here.  We
 *         # disallow buffer declarations for now, due to ambiguity with anonymous
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_empty); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L9_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_nonempty); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L9_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2514
 *         # disallow buffer declarations for now, due to ambiguity with anonymous
 *         # C arrays.
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2514, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2515
 *         # C arrays.
 *         if is_memoryviewslice_access(s):
 *             return p_memoryviewslice_access(s, base_type_node)             # <<<<<<<<<<<<<<
 *         else:
 *             return base_type_node
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access(__pyx_v_s, __pyx_v_base_type_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2515, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":2514
 *         # disallow buffer declarations for now, due to ambiguity with anonymous
 *         # C arrays.
 *         if is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":2517
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 *             return base_type_node             # <<<<<<<<<<<<<<
 * 
 * def is_memoryviewslice_access(s):
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_base_type_node);
      __pyx_r = __pyx_v_base_type_node;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":2510
 *             return p_buffer_or_template(s, base_type_node, None)
 *             # return p_buffer_access(s, base_type_node)
 *     elif not empty and not nonempty:             # <<<<<<<<<<<<<<
 *         # only anonymous C arrays and memoryview slice arrays here.  We
 *         # disallow buffer declarations for now, due to ambiguity with anonymous
 */
  }

  /* "Cython/Compiler/Parsing.py":2498
 *     return result
 * 
 * def p_bracketed_base_type(s, base_type_node, nonempty, empty):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     if empty and not nonempty:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_bracketed_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2519
 *             return base_type_node
 * 
 * def is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     # a memoryview slice declaration is distinguishable from a buffer access
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_saved = NULL;
  int __pyx_v_retval;
  PyObject *__pyx_v_sv = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("is_memoryviewslice_access", 0);

  /* "Cython/Compiler/Parsing.py":2524
 *     # declaration by the first entry in the bracketed list.  The buffer will
 *     # not have an unnested colon in the first entry; the memoryview slice will.
 *     saved = [(s.sy, s.systring)]             # <<<<<<<<<<<<<<
 *     s.next()
 *     retval = False
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_s->sy);
  __Pyx_GIVEREF(__pyx_v_s->sy);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s->sy);
  __Pyx_INCREF(__pyx_v_s->systring);
  __Pyx_GIVEREF(__pyx_v_s->systring);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_s->systring);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_saved = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2525
 *     # not have an unnested colon in the first entry; the memoryview slice will.
 *     saved = [(s.sy, s.systring)]
 *     s.next()             # <<<<<<<<<<<<<<
 *     retval = False
 *     if s.systring == ':':
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2526
 *     saved = [(s.sy, s.systring)]
 *     s.next()
 *     retval = False             # <<<<<<<<<<<<<<
 *     if s.systring == ':':
 *         retval = True
 */
  __pyx_v_retval = 0;

  /* "Cython/Compiler/Parsing.py":2527
 *     s.next()
 *     retval = False
 *     if s.systring == ':':             # <<<<<<<<<<<<<<
 *         retval = True
 *     elif s.sy == 'INT':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2527, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2528
 *     retval = False
 *     if s.systring == ':':
 *         retval = True             # <<<<<<<<<<<<<<
 *     elif s.sy == 'INT':
 *         saved.append((s.sy, s.systring))
 */
    __pyx_v_retval = 1;

    /* "Cython/Compiler/Parsing.py":2527
 *     s.next()
 *     retval = False
 *     if s.systring == ':':             # <<<<<<<<<<<<<<
 *         retval = True
 *     elif s.sy == 'INT':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2529
 *     if s.systring == ':':
 *         retval = True
 *     elif s.sy == 'INT':             # <<<<<<<<<<<<<<
 *         saved.append((s.sy, s.systring))
 *         s.next()
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_INT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2529, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2530
 *         retval = True
 *     elif s.sy == 'INT':
 *         saved.append((s.sy, s.systring))             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ':':
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_s->sy);
    __Pyx_GIVEREF(__pyx_v_s->sy);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_s->sy);
    __Pyx_INCREF(__pyx_v_s->systring);
    __Pyx_GIVEREF(__pyx_v_s->systring);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_s->systring);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_saved, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 2530, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2531
 *     elif s.sy == 'INT':
 *         saved.append((s.sy, s.systring))
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == ':':
 *             retval = True
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2532
 *         saved.append((s.sy, s.systring))
 *         s.next()
 *         if s.sy == ':':             # <<<<<<<<<<<<<<
 *             retval = True
 * 
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2532, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2533
 *         s.next()
 *         if s.sy == ':':
 *             retval = True             # <<<<<<<<<<<<<<
 * 
 *     for sv in saved[::-1]:
 */
      __pyx_v_retval = 1;

      /* "Cython/Compiler/Parsing.py":2532
 *         saved.append((s.sy, s.systring))
 *         s.next()
 *         if s.sy == ':':             # <<<<<<<<<<<<<<
 *             retval = True
 * 
 */
    }

    /* "Cython/Compiler/Parsing.py":2529
 *     if s.systring == ':':
 *         retval = True
 *     elif s.sy == 'INT':             # <<<<<<<<<<<<<<
 *         saved.append((s.sy, s.systring))
 *         s.next()
 */
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2535
 *             retval = True
 * 
 *     for sv in saved[::-1]:             # <<<<<<<<<<<<<<
 *         s.put_back(*sv)
 * 
 */
  __pyx_t_2 = PyObject_GetItem(__pyx_v_saved, __pyx_slice__115); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2535, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2535, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_sv, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2536
 * 
 *     for sv in saved[::-1]:
 *         s.put_back(*sv)             # <<<<<<<<<<<<<<
 * 
 *     return retval
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PySequence_Tuple(__pyx_v_sv); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2535
 *             retval = True
 * 
 *     for sv in saved[::-1]:             # <<<<<<<<<<<<<<
 *         s.put_back(*sv)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2538
 *         s.put_back(*sv)
 * 
 *     return retval             # <<<<<<<<<<<<<<
 * 
 * def p_memoryviewslice_access(s, base_type_node):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_retval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2519
 *             return base_type_node
 * 
 * def is_memoryviewslice_access(s):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     # a memoryview slice declaration is distinguishable from a buffer access
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.is_memoryviewslice_access", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_saved);
  __Pyx_XDECREF(__pyx_v_sv);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2540
 *     return retval
 * 
 * def p_memoryviewslice_access(s, base_type_node):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_base_type_node) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_subscripts = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_subscript = NULL;
  PyObject *__pyx_v_indexes = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_RefNannySetupContext("p_memoryviewslice_access", 0);

  /* "Cython/Compiler/Parsing.py":2542
 * def p_memoryviewslice_access(s, base_type_node):
 *     # s.sy == '['
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     subscripts, _ = p_subscript_list(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2543
 *     # s.sy == '['
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     subscripts, _ = p_subscript_list(s)
 *     # make sure each entry in subscripts is a slice
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2544
 *     pos = s.position()
 *     s.next()
 *     subscripts, _ = p_subscript_list(s)             # <<<<<<<<<<<<<<
 *     # make sure each entry in subscripts is a slice
 *     for subscript in subscripts:
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_subscript_list(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2544, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2544, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2544, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2544, __pyx_L1_error)
  }
  __pyx_v_subscripts = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v__ = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2546
 *     subscripts, _ = p_subscript_list(s)
 *     # make sure each entry in subscripts is a slice
 *     for subscript in subscripts:             # <<<<<<<<<<<<<<
 *         if len(subscript) < 2:
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")
 */
  if (likely(PyList_CheckExact(__pyx_v_subscripts)) || PyTuple_CheckExact(__pyx_v_subscripts)) {
    __pyx_t_1 = __pyx_v_subscripts; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_subscripts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2546, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2546, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2546, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2546, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2546, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_5(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2546, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_subscript, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2547
 *     # make sure each entry in subscripts is a slice
 *     for subscript in subscripts:
 *         if len(subscript) < 2:             # <<<<<<<<<<<<<<
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")
 *     s.expect(']')
 */
    __pyx_t_6 = PyObject_Length(__pyx_v_subscript); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 2547, __pyx_L1_error)
    __pyx_t_7 = ((__pyx_t_6 < 2) != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":2548
 *     for subscript in subscripts:
 *         if len(subscript) < 2:
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     indexes = make_slice_nodes(pos, subscripts)
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2548, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__116, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2548, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2547
 *     # make sure each entry in subscripts is a slice
 *     for subscript in subscripts:
 *         if len(subscript) < 2:             # <<<<<<<<<<<<<<
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")
 *     s.expect(']')
 */
    }

    /* "Cython/Compiler/Parsing.py":2546
 *     subscripts, _ = p_subscript_list(s)
 *     # make sure each entry in subscripts is a slice
 *     for subscript in subscripts:             # <<<<<<<<<<<<<<
 *         if len(subscript) < 2:
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2549
 *         if len(subscript) < 2:
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")
 *     s.expect(']')             # <<<<<<<<<<<<<<
 *     indexes = make_slice_nodes(pos, subscripts)
 *     result = Nodes.MemoryViewSliceTypeNode(pos,
 */
  __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_7 == -2)) __PYX_ERR(0, 2549, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2550
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")
 *     s.expect(']')
 *     indexes = make_slice_nodes(pos, subscripts)             # <<<<<<<<<<<<<<
 *     result = Nodes.MemoryViewSliceTypeNode(pos,
 *             base_type_node = base_type_node,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes(__pyx_v_pos, __pyx_v_subscripts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_indexes = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2551
 *     s.expect(']')
 *     indexes = make_slice_nodes(pos, subscripts)
 *     result = Nodes.MemoryViewSliceTypeNode(pos,             # <<<<<<<<<<<<<<
 *             base_type_node = base_type_node,
 *             axes = indexes)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_MemoryViewSliceTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2552
 *     indexes = make_slice_nodes(pos, subscripts)
 *     result = Nodes.MemoryViewSliceTypeNode(pos,
 *             base_type_node = base_type_node,             # <<<<<<<<<<<<<<
 *             axes = indexes)
 *     return result
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base_type_node, __pyx_v_base_type_node) < 0) __PYX_ERR(0, 2552, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2553
 *     result = Nodes.MemoryViewSliceTypeNode(pos,
 *             base_type_node = base_type_node,
 *             axes = indexes)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_axes, __pyx_v_indexes) < 0) __PYX_ERR(0, 2552, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2551
 *     s.expect(']')
 *     indexes = make_slice_nodes(pos, subscripts)
 *     result = Nodes.MemoryViewSliceTypeNode(pos,             # <<<<<<<<<<<<<<
 *             base_type_node = base_type_node,
 *             axes = indexes)
 */
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":2554
 *             base_type_node = base_type_node,
 *             axes = indexes)
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def looking_at_name(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2540
 *     return retval
 * 
 * def p_memoryviewslice_access(s, base_type_node):             # <<<<<<<<<<<<<<
 *     # s.sy == '['
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_memoryviewslice_access", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_subscripts);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_subscript);
  __Pyx_XDECREF(__pyx_v_indexes);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2556
 *     return result
 * 
 * def looking_at_name(s):             # <<<<<<<<<<<<<<
 *     return s.sy == 'IDENT' and not s.systring in calling_convention_words
 * 
 */

static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("looking_at_name", 0);

  /* "Cython/Compiler/Parsing.py":2557
 * 
 * def looking_at_name(s):
 *     return s.sy == 'IDENT' and not s.systring in calling_convention_words             # <<<<<<<<<<<<<<
 * 
 * def looking_at_expr(s):
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2557, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2557, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2556
 *     return result
 * 
 * def looking_at_name(s):             # <<<<<<<<<<<<<<
 *     return s.sy == 'IDENT' and not s.systring in calling_convention_words
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.looking_at_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -2;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2559
 *     return s.sy == 'IDENT' and not s.systring in calling_convention_words
 * 
 * def looking_at_expr(s):             # <<<<<<<<<<<<<<
 *     if s.systring in base_type_start_words:
 *         return False
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_is_type = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_dotted_path = NULL;
  PyObject *__pyx_v_saved = NULL;
  PyObject *__pyx_v_p = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("looking_at_expr", 0);

  /* "Cython/Compiler/Parsing.py":2560
 * 
 * def looking_at_expr(s):
 *     if s.systring in base_type_start_words:             # <<<<<<<<<<<<<<
 *         return False
 *     elif s.sy == 'IDENT':
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2561
 * def looking_at_expr(s):
 *     if s.systring in base_type_start_words:
 *         return False             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT':
 *         is_type = False
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2560
 * 
 * def looking_at_expr(s):
 *     if s.systring in base_type_start_words:             # <<<<<<<<<<<<<<
 *         return False
 *     elif s.sy == 'IDENT':
 */
  }

  /* "Cython/Compiler/Parsing.py":2562
 *     if s.systring in base_type_start_words:
 *         return False
 *     elif s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         is_type = False
 *         name = s.systring
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2562, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2563
 *         return False
 *     elif s.sy == 'IDENT':
 *         is_type = False             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         dotted_path = []
 */
    __Pyx_INCREF(Py_False);
    __pyx_v_is_type = Py_False;

    /* "Cython/Compiler/Parsing.py":2564
 *     elif s.sy == 'IDENT':
 *         is_type = False
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         dotted_path = []
 *         s.next()
 */
    __pyx_t_3 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_name = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2565
 *         is_type = False
 *         name = s.systring
 *         dotted_path = []             # <<<<<<<<<<<<<<
 *         s.next()
 * 
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_dotted_path = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2566
 *         name = s.systring
 *         dotted_path = []
 *         s.next()             # <<<<<<<<<<<<<<
 * 
 *         while s.sy == '.':
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2568
 *         s.next()
 * 
 *         while s.sy == '.':             # <<<<<<<<<<<<<<
 *             s.next()
 *             dotted_path.append(s.systring)
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2568, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":2569
 * 
 *         while s.sy == '.':
 *             s.next()             # <<<<<<<<<<<<<<
 *             dotted_path.append(s.systring)
 *             s.expect('IDENT')
 */
      __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2569, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2570
 *         while s.sy == '.':
 *             s.next()
 *             dotted_path.append(s.systring)             # <<<<<<<<<<<<<<
 *             s.expect('IDENT')
 * 
 */
      __pyx_t_3 = __pyx_v_s->systring;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_dotted_path, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2571
 *             s.next()
 *             dotted_path.append(s.systring)
 *             s.expect('IDENT')             # <<<<<<<<<<<<<<
 * 
 *         saved = s.sy, s.systring
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_IDENT, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2571, __pyx_L1_error)
    }

    /* "Cython/Compiler/Parsing.py":2573
 *             s.expect('IDENT')
 * 
 *         saved = s.sy, s.systring             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT':
 *             is_type = True
 */
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2573, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_s->sy);
    __Pyx_GIVEREF(__pyx_v_s->sy);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_s->sy);
    __Pyx_INCREF(__pyx_v_s->systring);
    __Pyx_GIVEREF(__pyx_v_s->systring);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_s->systring);
    __pyx_v_saved = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2574
 * 
 *         saved = s.sy, s.systring
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             is_type = True
 *         elif s.sy == '*' or s.sy == '**':
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2574, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2575
 *         saved = s.sy, s.systring
 *         if s.sy == 'IDENT':
 *             is_type = True             # <<<<<<<<<<<<<<
 *         elif s.sy == '*' or s.sy == '**':
 *             s.next()
 */
      __Pyx_INCREF(Py_True);
      __Pyx_DECREF_SET(__pyx_v_is_type, Py_True);

      /* "Cython/Compiler/Parsing.py":2574
 * 
 *         saved = s.sy, s.systring
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             is_type = True
 *         elif s.sy == '*' or s.sy == '**':
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2576
 *         if s.sy == 'IDENT':
 *             is_type = True
 *         elif s.sy == '*' or s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy in (')', ']')
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2576, __pyx_L1_error)
    if (!__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2576, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_1;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2577
 *             is_type = True
 *         elif s.sy == '*' or s.sy == '**':
 *             s.next()             # <<<<<<<<<<<<<<
 *             is_type = s.sy in (')', ']')
 *             s.put_back(*saved)
 */
      __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2578
 *         elif s.sy == '*' or s.sy == '**':
 *             s.next()
 *             is_type = s.sy in (')', ']')             # <<<<<<<<<<<<<<
 *             s.put_back(*saved)
 *         elif s.sy == '(':
 */
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_3 = __pyx_v_s->sy;
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__31, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2578, __pyx_L1_error)
      if (!__pyx_t_1) {
      } else {
        __pyx_t_2 = __pyx_t_1;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__43, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2578, __pyx_L1_error)
      __pyx_t_2 = __pyx_t_1;
      __pyx_L9_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_is_type, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2579
 *             s.next()
 *             is_type = s.sy in (')', ']')
 *             s.put_back(*saved)             # <<<<<<<<<<<<<<
 *         elif s.sy == '(':
 *             s.next()
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2579, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_v_saved, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2579, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":2576
 *         if s.sy == 'IDENT':
 *             is_type = True
 *         elif s.sy == '*' or s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy in (')', ']')
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2580
 *             is_type = s.sy in (')', ']')
 *             s.put_back(*saved)
 *         elif s.sy == '(':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy == '*'
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2580, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2581
 *             s.put_back(*saved)
 *         elif s.sy == '(':
 *             s.next()             # <<<<<<<<<<<<<<
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)
 */
      __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2581, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":2582
 *         elif s.sy == '(':
 *             s.next()
 *             is_type = s.sy == '*'             # <<<<<<<<<<<<<<
 *             s.put_back(*saved)
 *         elif s.sy == '[':
 */
      __pyx_t_5 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2582, __pyx_L1_error)
      __Pyx_DECREF_SET(__pyx_v_is_type, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":2583
 *             s.next()
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)             # <<<<<<<<<<<<<<
 *         elif s.sy == '[':
 *             s.next()
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_v_saved, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2580
 *             is_type = s.sy in (')', ']')
 *             s.put_back(*saved)
 *         elif s.sy == '(':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy == '*'
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2584
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)
 *         elif s.sy == '[':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy == ']'
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2584, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2585
 *             s.put_back(*saved)
 *         elif s.sy == '[':
 *             s.next()             # <<<<<<<<<<<<<<
 *             is_type = s.sy == ']'
 *             s.put_back(*saved)
 */
      __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2585, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2586
 *         elif s.sy == '[':
 *             s.next()
 *             is_type = s.sy == ']'             # <<<<<<<<<<<<<<
 *             s.put_back(*saved)
 * 
 */
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_kp_u__43, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2586, __pyx_L1_error)
      __Pyx_DECREF_SET(__pyx_v_is_type, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2587
 *             s.next()
 *             is_type = s.sy == ']'
 *             s.put_back(*saved)             # <<<<<<<<<<<<<<
 * 
 *         dotted_path.reverse()
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_v_saved, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":2584
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)
 *         elif s.sy == '[':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy == ']'
 */
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2589
 *             s.put_back(*saved)
 * 
 *         dotted_path.reverse()             # <<<<<<<<<<<<<<
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)
 */
    __pyx_t_4 = PyList_Reverse(__pyx_v_dotted_path); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 2589, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2590
 * 
 *         dotted_path.reverse()
 *         for p in dotted_path:             # <<<<<<<<<<<<<<
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')
 */
    __pyx_t_5 = __pyx_v_dotted_path; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2590, __pyx_L1_error)
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2590, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2591
 *         dotted_path.reverse()
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)             # <<<<<<<<<<<<<<
 *             s.put_back('.', '.')
 * 
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = NULL;
      __pyx_t_9 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_9 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_n_u_IDENT, __pyx_v_p};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2591, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_n_u_IDENT, __pyx_v_p};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2591, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      {
        __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2591, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_n_u_IDENT);
        __Pyx_GIVEREF(__pyx_n_u_IDENT);
        PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_n_u_IDENT);
        __Pyx_INCREF(__pyx_v_p);
        __Pyx_GIVEREF(__pyx_v_p);
        PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_p);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2591, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2592
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')             # <<<<<<<<<<<<<<
 * 
 *         s.put_back('IDENT', name)
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__117, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2592, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2590
 * 
 *         dotted_path.reverse()
 *         for p in dotted_path:             # <<<<<<<<<<<<<<
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2594
 *             s.put_back('.', '.')
 * 
 *         s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *         return not is_type and saved[0]
 *     else:
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2594, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_n_u_IDENT, __pyx_v_name};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2594, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_n_u_IDENT, __pyx_v_name};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2594, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2594, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_n_u_IDENT);
      __Pyx_GIVEREF(__pyx_n_u_IDENT);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_n_u_IDENT);
      __Pyx_INCREF(__pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_name);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2594, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2595
 * 
 *         s.put_back('IDENT', name)
 *         return not is_type and saved[0]             # <<<<<<<<<<<<<<
 *     else:
 *         return True
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_is_type); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2595, __pyx_L1_error)
    __pyx_t_1 = (!__pyx_t_2);
    if (__pyx_t_1) {
    } else {
      __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2595, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v_saved, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_5 = __pyx_t_7;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_L13_bool_binop_done:;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2562
 *     if s.systring in base_type_start_words:
 *         return False
 *     elif s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         is_type = False
 *         name = s.systring
 */
  }

  /* "Cython/Compiler/Parsing.py":2597
 *         return not is_type and saved[0]
 *     else:
 *         return True             # <<<<<<<<<<<<<<
 * 
 * def looking_at_base_type(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2559
 *     return s.sy == 'IDENT' and not s.systring in calling_convention_words
 * 
 * def looking_at_expr(s):             # <<<<<<<<<<<<<<
 *     if s.systring in base_type_start_words:
 *         return False
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.looking_at_expr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_is_type);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_dotted_path);
  __Pyx_XDECREF(__pyx_v_saved);
  __Pyx_XDECREF(__pyx_v_p);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2599
 *         return True
 * 
 * def looking_at_base_type(s):             # <<<<<<<<<<<<<<
 *     #print "looking_at_base_type?", s.sy, s.systring, s.position()
 *     return s.sy == 'IDENT' and s.systring in base_type_start_words
 */

static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_base_type(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("looking_at_base_type", 0);

  /* "Cython/Compiler/Parsing.py":2601
 * def looking_at_base_type(s):
 *     #print "looking_at_base_type?", s.sy, s.systring, s.position()
 *     return s.sy == 'IDENT' and s.systring in base_type_start_words             # <<<<<<<<<<<<<<
 * 
 * def looking_at_dotted_name(s):
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2601, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2601, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2599
 *         return True
 * 
 * def looking_at_base_type(s):             # <<<<<<<<<<<<<<
 *     #print "looking_at_base_type?", s.sy, s.systring, s.position()
 *     return s.sy == 'IDENT' and s.systring in base_type_start_words
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.looking_at_base_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -2;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2603
 *     return s.sy == 'IDENT' and s.systring in base_type_start_words
 * 
 * def looking_at_dotted_name(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT':
 *         name = s.systring
 */

static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_dotted_name(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_result = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("looking_at_dotted_name", 0);

  /* "Cython/Compiler/Parsing.py":2604
 * 
 * def looking_at_dotted_name(s):
 *     if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2604, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2605
 * def looking_at_dotted_name(s):
 *     if s.sy == 'IDENT':
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         result = s.sy == '.'
 */
    __pyx_t_2 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2606
 *     if s.sy == 'IDENT':
 *         name = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         result = s.sy == '.'
 *         s.put_back('IDENT', name)
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2606, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2607
 *         name = s.systring
 *         s.next()
 *         result = s.sy == '.'             # <<<<<<<<<<<<<<
 *         s.put_back('IDENT', name)
 *         return result
 */
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2607, __pyx_L1_error)
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2608
 *         s.next()
 *         result = s.sy == '.'
 *         s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *         return result
 *     else:
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2608, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_IDENT, __pyx_v_name};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2608, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_IDENT, __pyx_v_name};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2608, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_n_u_IDENT);
      __Pyx_GIVEREF(__pyx_n_u_IDENT);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_n_u_IDENT);
      __Pyx_INCREF(__pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2609
 *         result = s.sy == '.'
 *         s.put_back('IDENT', name)
 *         return result             # <<<<<<<<<<<<<<
 *     else:
 *         return 0
 */
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2609, __pyx_L1_error)
    __pyx_r = __pyx_t_1;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2604
 * 
 * def looking_at_dotted_name(s):
 *     if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":2611
 *         return result
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def looking_at_call(s):
 */
  /*else*/ {
    __pyx_r = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2603
 *     return s.sy == 'IDENT' and s.systring in base_type_start_words
 * 
 * def looking_at_dotted_name(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT':
 *         name = s.systring
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.looking_at_dotted_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -2;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2613
 *         return 0
 * 
 * def looking_at_call(s):             # <<<<<<<<<<<<<<
 *     "See if we're looking at a.b.c("
 *     # Don't mess up the original position, so save and restore it.
 */

static int __pyx_f_6Cython_8Compiler_7Parsing_looking_at_call(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  __pyx_ctuple_Py_ssize_t__and_Py_ssize_t __pyx_v_position;
  PyObject *__pyx_v_result = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __pyx_ctuple_Py_ssize_t__and_Py_ssize_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  __Pyx_RefNannySetupContext("looking_at_call", 0);

  /* "Cython/Compiler/Parsing.py":2618
 *     # Unfortunately there's no good way to handle this, as a subsequent call
 *     # to next() will not advance the position until it reads a new token.
 *     position = s.start_line, s.start_col             # <<<<<<<<<<<<<<
 *     result = looking_at_expr(s) == u'('
 *     if not result:
 */
  __pyx_t_1.f0 = __pyx_v_s->__pyx_base.start_line;
  __pyx_t_1.f1 = __pyx_v_s->__pyx_base.start_col;
  __pyx_v_position = __pyx_t_1;

  /* "Cython/Compiler/Parsing.py":2619
 *     # to next() will not advance the position until it reads a new token.
 *     position = s.start_line, s.start_col
 *     result = looking_at_expr(s) == u'('             # <<<<<<<<<<<<<<
 *     if not result:
 *         s.start_line, s.start_col = position
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_kp_u__30, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2619, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2620
 *     position = s.start_line, s.start_col
 *     result = looking_at_expr(s) == u'('
 *     if not result:             # <<<<<<<<<<<<<<
 *         s.start_line, s.start_col = position
 *     return result
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __pyx_t_5 = ((!__pyx_t_4) != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2621
 *     result = looking_at_expr(s) == u'('
 *     if not result:
 *         s.start_line, s.start_col = position             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __pyx_t_1 = __pyx_v_position;
    __pyx_t_6 = __pyx_t_1.f0;
    __pyx_t_7 = __pyx_t_1.f1;
    __pyx_v_s->__pyx_base.start_line = __pyx_t_6;
    __pyx_v_s->__pyx_base.start_col = __pyx_t_7;

    /* "Cython/Compiler/Parsing.py":2620
 *     position = s.start_line, s.start_col
 *     result = looking_at_expr(s) == u'('
 *     if not result:             # <<<<<<<<<<<<<<
 *         s.start_line, s.start_col = position
 *     return result
 */
  }

  /* "Cython/Compiler/Parsing.py":2622
 *     if not result:
 *         s.start_line, s.start_col = position
 *     return result             # <<<<<<<<<<<<<<
 * 
 * basic_c_type_names = cython.declare(
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2622, __pyx_L1_error)
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2613
 *         return 0
 * 
 * def looking_at_call(s):             # <<<<<<<<<<<<<<
 *     "See if we're looking at a.b.c("
 *     # Don't mess up the original position, so save and restore it.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.looking_at_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -2;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2650
 *     set, set(["struct", "union", "enum", "packed"]))
 * 
 * def p_sign_and_longness(s):             # <<<<<<<<<<<<<<
 *     signed = 1
 *     longness = 0
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_sign_and_longness(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  long __pyx_v_signed;
  long __pyx_v_longness;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_sign_and_longness", 0);

  /* "Cython/Compiler/Parsing.py":2651
 * 
 * def p_sign_and_longness(s):
 *     signed = 1             # <<<<<<<<<<<<<<
 *     longness = 0
 *     while s.sy == 'IDENT' and s.systring in sign_and_longness_words:
 */
  __pyx_v_signed = 1;

  /* "Cython/Compiler/Parsing.py":2652
 * def p_sign_and_longness(s):
 *     signed = 1
 *     longness = 0             # <<<<<<<<<<<<<<
 *     while s.sy == 'IDENT' and s.systring in sign_and_longness_words:
 *         if s.systring == 'unsigned':
 */
  __pyx_v_longness = 0;

  /* "Cython/Compiler/Parsing.py":2653
 *     signed = 1
 *     longness = 0
 *     while s.sy == 'IDENT' and s.systring in sign_and_longness_words:             # <<<<<<<<<<<<<<
 *         if s.systring == 'unsigned':
 *             signed = 0
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2653, __pyx_L1_error)
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2653, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_2 != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "Cython/Compiler/Parsing.py":2654
 *     longness = 0
 *     while s.sy == 'IDENT' and s.systring in sign_and_longness_words:
 *         if s.systring == 'unsigned':             # <<<<<<<<<<<<<<
 *             signed = 0
 *         elif s.systring == 'signed':
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_unsigned, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2654, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2655
 *     while s.sy == 'IDENT' and s.systring in sign_and_longness_words:
 *         if s.systring == 'unsigned':
 *             signed = 0             # <<<<<<<<<<<<<<
 *         elif s.systring == 'signed':
 *             signed = 2
 */
      __pyx_v_signed = 0;

      /* "Cython/Compiler/Parsing.py":2654
 *     longness = 0
 *     while s.sy == 'IDENT' and s.systring in sign_and_longness_words:
 *         if s.systring == 'unsigned':             # <<<<<<<<<<<<<<
 *             signed = 0
 *         elif s.systring == 'signed':
 */
      goto __pyx_L7;
    }

    /* "Cython/Compiler/Parsing.py":2656
 *         if s.systring == 'unsigned':
 *             signed = 0
 *         elif s.systring == 'signed':             # <<<<<<<<<<<<<<
 *             signed = 2
 *         elif s.systring == 'short':
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_signed, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2656, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2657
 *             signed = 0
 *         elif s.systring == 'signed':
 *             signed = 2             # <<<<<<<<<<<<<<
 *         elif s.systring == 'short':
 *             longness = -1
 */
      __pyx_v_signed = 2;

      /* "Cython/Compiler/Parsing.py":2656
 *         if s.systring == 'unsigned':
 *             signed = 0
 *         elif s.systring == 'signed':             # <<<<<<<<<<<<<<
 *             signed = 2
 *         elif s.systring == 'short':
 */
      goto __pyx_L7;
    }

    /* "Cython/Compiler/Parsing.py":2658
 *         elif s.systring == 'signed':
 *             signed = 2
 *         elif s.systring == 'short':             # <<<<<<<<<<<<<<
 *             longness = -1
 *         elif s.systring == 'long':
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_short, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2658, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2659
 *             signed = 2
 *         elif s.systring == 'short':
 *             longness = -1             # <<<<<<<<<<<<<<
 *         elif s.systring == 'long':
 *             longness += 1
 */
      __pyx_v_longness = -1L;

      /* "Cython/Compiler/Parsing.py":2658
 *         elif s.systring == 'signed':
 *             signed = 2
 *         elif s.systring == 'short':             # <<<<<<<<<<<<<<
 *             longness = -1
 *         elif s.systring == 'long':
 */
      goto __pyx_L7;
    }

    /* "Cython/Compiler/Parsing.py":2660
 *         elif s.systring == 'short':
 *             longness = -1
 *         elif s.systring == 'long':             # <<<<<<<<<<<<<<
 *             longness += 1
 *         s.next()
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_long, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2660, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2661
 *             longness = -1
 *         elif s.systring == 'long':
 *             longness += 1             # <<<<<<<<<<<<<<
 *         s.next()
 *     return signed, longness
 */
      __pyx_v_longness = (__pyx_v_longness + 1);

      /* "Cython/Compiler/Parsing.py":2660
 *         elif s.systring == 'short':
 *             longness = -1
 *         elif s.systring == 'long':             # <<<<<<<<<<<<<<
 *             longness += 1
 *         s.next()
 */
    }
    __pyx_L7:;

    /* "Cython/Compiler/Parsing.py":2662
 *         elif s.systring == 'long':
 *             longness += 1
 *         s.next()             # <<<<<<<<<<<<<<
 *     return signed, longness
 * 
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "Cython/Compiler/Parsing.py":2663
 *             longness += 1
 *         s.next()
 *     return signed, longness             # <<<<<<<<<<<<<<
 * 
 * def p_opt_cname(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_signed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_longness); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2650
 *     set, set(["struct", "union", "enum", "packed"]))
 * 
 * def p_sign_and_longness(s):             # <<<<<<<<<<<<<<
 *     signed = 1
 *     longness = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_sign_and_longness", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2665
 *     return signed, longness
 * 
 * def p_opt_cname(s):             # <<<<<<<<<<<<<<
 *     literal = p_opt_string_literal(s, 'u')
 *     if literal is not None:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_literal = NULL;
  PyObject *__pyx_v_cname = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_opt_string_literal __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_opt_cname", 0);

  /* "Cython/Compiler/Parsing.py":2666
 * 
 * def p_opt_cname(s):
 *     literal = p_opt_string_literal(s, 'u')             # <<<<<<<<<<<<<<
 *     if literal is not None:
 *         cname = EncodedString(literal)
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.required_type = __pyx_n_u_u;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_string_literal(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_literal = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2667
 * def p_opt_cname(s):
 *     literal = p_opt_string_literal(s, 'u')
 *     if literal is not None:             # <<<<<<<<<<<<<<
 *         cname = EncodedString(literal)
 *         cname.encoding = s.source_encoding
 */
  __pyx_t_3 = (__pyx_v_literal != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2668
 *     literal = p_opt_string_literal(s, 'u')
 *     if literal is not None:
 *         cname = EncodedString(literal)             # <<<<<<<<<<<<<<
 *         cname.encoding = s.source_encoding
 *     else:
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (!__pyx_t_6) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_literal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2668, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_literal};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2668, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_literal};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2668, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2668, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL;
        __Pyx_INCREF(__pyx_v_literal);
        __Pyx_GIVEREF(__pyx_v_literal);
        PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_literal);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2668, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_cname = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2669
 *     if literal is not None:
 *         cname = EncodedString(literal)
 *         cname.encoding = s.source_encoding             # <<<<<<<<<<<<<<
 *     else:
 *         cname = None
 */
    __pyx_t_1 = __pyx_v_s->source_encoding;
    __Pyx_INCREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_cname, __pyx_n_s_encoding, __pyx_t_1) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2667
 * def p_opt_cname(s):
 *     literal = p_opt_string_literal(s, 'u')
 *     if literal is not None:             # <<<<<<<<<<<<<<
 *         cname = EncodedString(literal)
 *         cname.encoding = s.source_encoding
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2671
 *         cname.encoding = s.source_encoding
 *     else:
 *         cname = None             # <<<<<<<<<<<<<<
 *     return cname
 * 
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_cname = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2672
 *     else:
 *         cname = None
 *     return cname             # <<<<<<<<<<<<<<
 * 
 * def p_c_declarator(s, ctx = Ctx(), empty = 0, is_type = 0, cmethod_flag = 0,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_cname);
  __pyx_r = __pyx_v_cname;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2665
 *     return signed, longness
 * 
 * def p_opt_cname(s):             # <<<<<<<<<<<<<<
 *     literal = p_opt_string_literal(s, 'u')
 *     if literal is not None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_opt_cname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_literal);
  __Pyx_XDECREF(__pyx_v_cname);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2674
 *     return cname
 * 
 * def p_c_declarator(s, ctx = Ctx(), empty = 0, is_type = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                    assignable = 0, nonempty = 0,
 *                    calling_convention_allowed = 0):
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_5p_c_declarator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator *__pyx_optional_args) {
  PyObject *__pyx_v_ctx = __pyx_k__118;
  int __pyx_v_empty = ((int)0);
  int __pyx_v_is_type = ((int)0);
  int __pyx_v_cmethod_flag = ((int)0);
  int __pyx_v_assignable = ((int)0);
  int __pyx_v_nonempty = ((int)0);
  int __pyx_v_calling_convention_allowed = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_base = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("p_c_declarator", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ctx = __pyx_optional_args->ctx;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_empty = __pyx_optional_args->empty;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_is_type = __pyx_optional_args->is_type;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_cmethod_flag = __pyx_optional_args->cmethod_flag;
            if (__pyx_optional_args->__pyx_n > 4) {
              __pyx_v_assignable = __pyx_optional_args->assignable;
              if (__pyx_optional_args->__pyx_n > 5) {
                __pyx_v_nonempty = __pyx_optional_args->nonempty;
                if (__pyx_optional_args->__pyx_n > 6) {
                  __pyx_v_calling_convention_allowed = __pyx_optional_args->calling_convention_allowed;
                }
              }
            }
          }
        }
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":2681
 *     # If cmethod_flag is true, then if this declarator declares
 *     # a function, it's a C method of an extension type.
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         s.next()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2682
 *     # a function, it's a C method of an extension type.
 *     pos = s.position()
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2682, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2683
 *     pos = s.position()
 *     if s.sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name=s.context.intern_ustring(u""), cname=None)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2684
 *     if s.sy == '(':
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):             # <<<<<<<<<<<<<<
 *             base = Nodes.CNameDeclaratorNode(pos, name=s.context.intern_ustring(u""), cname=None)
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__31, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2684, __pyx_L1_error)
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_name(__pyx_v_s); if (unlikely(__pyx_t_3 == -2)) __PYX_ERR(0, 2684, __pyx_L1_error)
    __pyx_t_4 = (__pyx_t_3 != 0);
    __pyx_t_2 = __pyx_t_4;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2685
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name=s.context.intern_ustring(u""), cname=None)             # <<<<<<<<<<<<<<
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 *         else:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CNameDeclaratorNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__119, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_t_8) < 0) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, Py_None) < 0) __PYX_ERR(0, 2685, __pyx_L1_error)
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2685, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_v_base = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":2686
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name=s.context.intern_ustring(u""), cname=None)
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)             # <<<<<<<<<<<<<<
 *         else:
 *             result = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 */
      __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_declarator(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx, __pyx_v_base, __pyx_v_cmethod_flag); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_v_result = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":2684
 *     if s.sy == '(':
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):             # <<<<<<<<<<<<<<
 *             base = Nodes.CNameDeclaratorNode(pos, name=s.context.intern_ustring(u""), cname=None)
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":2688
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 *         else:
 *             result = p_c_declarator(s, ctx, empty = empty, is_type = is_type,             # <<<<<<<<<<<<<<
 *                                     cmethod_flag = cmethod_flag,
 *                                     nonempty = nonempty,
 */
    /*else*/ {
      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
      __Pyx_INCREF(__pyx_v_ctx);
      __Pyx_GIVEREF(__pyx_v_ctx);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ctx);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_empty, __pyx_t_1) < 0) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_is_type, __pyx_t_1) < 0) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2689
 *         else:
 *             result = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 *                                     cmethod_flag = cmethod_flag,             # <<<<<<<<<<<<<<
 *                                     nonempty = nonempty,
 *                                     calling_convention_allowed = 1)
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cmethod_flag, __pyx_t_1) < 0) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2690
 *             result = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 *                                     cmethod_flag = cmethod_flag,
 *                                     nonempty = nonempty,             # <<<<<<<<<<<<<<
 *                                     calling_convention_allowed = 1)
 *             s.expect(')')
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_nonempty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2690, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_nonempty, __pyx_t_1) < 0) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_calling_convention_allowed, __pyx_int_1) < 0) __PYX_ERR(0, 2688, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":2688
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 *         else:
 *             result = p_c_declarator(s, ctx, empty = empty, is_type = is_type,             # <<<<<<<<<<<<<<
 *                                     cmethod_flag = cmethod_flag,
 *                                     nonempty = nonempty,
 */
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_result = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2692
 *                                     nonempty = nonempty,
 *                                     calling_convention_allowed = 1)
 *             s.expect(')')             # <<<<<<<<<<<<<<
 *     else:
 *         result = p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2692, __pyx_L1_error)
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":2682
 *     # a function, it's a C method of an extension type.
 *     pos = s.position()
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2694
 *             s.expect(')')
 *     else:
 *         result = p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,             # <<<<<<<<<<<<<<
 *                                        assignable, nonempty)
 *     if not calling_convention_allowed and result.calling_convention and s.sy != '(':
 */
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2695
 *     else:
 *         result = p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,
 *                                        assignable, nonempty)             # <<<<<<<<<<<<<<
 *     if not calling_convention_allowed and result.calling_convention and s.sy != '(':
 *         error(s.position(), "%s on something that is not a function"
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_declarator(__pyx_v_s, __pyx_v_ctx, __pyx_v_empty, __pyx_v_is_type, __pyx_v_cmethod_flag, __pyx_v_assignable, __pyx_v_nonempty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2696
 *         result = p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,
 *                                        assignable, nonempty)
 *     if not calling_convention_allowed and result.calling_convention and s.sy != '(':             # <<<<<<<<<<<<<<
 *         error(s.position(), "%s on something that is not a function"
 *             % result.calling_convention)
 */
  __pyx_t_4 = ((!(__pyx_v_calling_convention_allowed != 0)) != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_calling_convention); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2696, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_4;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2697
 *                                        assignable, nonempty)
 *     if not calling_convention_allowed and result.calling_convention and s.sy != '(':
 *         error(s.position(), "%s on something that is not a function"             # <<<<<<<<<<<<<<
 *             % result.calling_convention)
 *     while s.sy in ('[', '('):
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":2698
 *     if not calling_convention_allowed and result.calling_convention and s.sy != '(':
 *         error(s.position(), "%s on something that is not a function"
 *             % result.calling_convention)             # <<<<<<<<<<<<<<
 *     while s.sy in ('[', '('):
 *         pos = s.position()
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_calling_convention); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_s_on_something_that_is_not_a_fu, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_6 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_8};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2697, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_8};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2697, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2697, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8);
      __pyx_t_5 = 0;
      __pyx_t_8 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2697, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2696
 *         result = p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,
 *                                        assignable, nonempty)
 *     if not calling_convention_allowed and result.calling_convention and s.sy != '(':             # <<<<<<<<<<<<<<
 *         error(s.position(), "%s on something that is not a function"
 *             % result.calling_convention)
 */
  }

  /* "Cython/Compiler/Parsing.py":2699
 *         error(s.position(), "%s on something that is not a function"
 *             % result.calling_convention)
 *     while s.sy in ('[', '('):             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         if s.sy == '[':
 */
  while (1) {
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_1 = __pyx_v_s->sy;
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2699, __pyx_L1_error)
    if (!__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2699, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_4;
    __pyx_L13_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":2700
 *             % result.calling_convention)
 *     while s.sy in ('[', '('):
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         if s.sy == '[':
 *             result = p_c_array_declarator(s, result)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_pos, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2701
 *     while s.sy in ('[', '('):
 *         pos = s.position()
 *         if s.sy == '[':             # <<<<<<<<<<<<<<
 *             result = p_c_array_declarator(s, result)
 *         else: # sy == '('
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2701, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2702
 *         pos = s.position()
 *         if s.sy == '[':
 *             result = p_c_array_declarator(s, result)             # <<<<<<<<<<<<<<
 *         else: # sy == '('
 *             s.next()
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_array_declarator(__pyx_v_s, __pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2702, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2701
 *     while s.sy in ('[', '('):
 *         pos = s.position()
 *         if s.sy == '[':             # <<<<<<<<<<<<<<
 *             result = p_c_array_declarator(s, result)
 *         else: # sy == '('
 */
      goto __pyx_L15;
    }

    /* "Cython/Compiler/Parsing.py":2704
 *             result = p_c_array_declarator(s, result)
 *         else: # sy == '('
 *             s.next()             # <<<<<<<<<<<<<<
 *             result = p_c_func_declarator(s, pos, ctx, result, cmethod_flag)
 *         cmethod_flag = 0
 */
    /*else*/ {
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2704, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2705
 *         else: # sy == '('
 *             s.next()
 *             result = p_c_func_declarator(s, pos, ctx, result, cmethod_flag)             # <<<<<<<<<<<<<<
 *         cmethod_flag = 0
 *     return result
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_declarator(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx, __pyx_v_result, __pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1);
      __pyx_t_1 = 0;
    }
    __pyx_L15:;

    /* "Cython/Compiler/Parsing.py":2706
 *             s.next()
 *             result = p_c_func_declarator(s, pos, ctx, result, cmethod_flag)
 *         cmethod_flag = 0             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __pyx_v_cmethod_flag = 0;
  }

  /* "Cython/Compiler/Parsing.py":2707
 *             result = p_c_func_declarator(s, pos, ctx, result, cmethod_flag)
 *         cmethod_flag = 0
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_c_array_declarator(s, base):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2674
 *     return cname
 * 
 * def p_c_declarator(s, ctx = Ctx(), empty = 0, is_type = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                    assignable = 0, nonempty = 0,
 *                    calling_convention_allowed = 0):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_declarator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_base);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_5p_c_declarator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_5p_c_declarator = {"p_c_declarator", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_5p_c_declarator, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_5p_c_declarator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s = 0;
  PyObject *__pyx_v_ctx = 0;
  int __pyx_v_empty;
  int __pyx_v_is_type;
  int __pyx_v_cmethod_flag;
  int __pyx_v_assignable;
  int __pyx_v_nonempty;
  int __pyx_v_calling_convention_allowed;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_c_declarator (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_ctx,&__pyx_n_s_empty,&__pyx_n_s_is_type,&__pyx_n_s_cmethod_flag,&__pyx_n_s_assignable,&__pyx_n_s_nonempty,&__pyx_n_s_calling_convention_allowed,0};
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    values[1] = __pyx_k__118;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ctx);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_empty);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_is_type);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmethod_flag);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_assignable);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nonempty);
          if (value) { values[6] = value; kw_args--; }
        }
        case  7:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_calling_convention_allowed);
          if (value) { values[7] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "p_c_declarator") < 0)) __PYX_ERR(0, 2674, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_s = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)values[0]);
    __pyx_v_ctx = values[1];
    if (values[2]) {
      __pyx_v_empty = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_empty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2674, __pyx_L3_error)
    } else {
      __pyx_v_empty = ((int)0);
    }
    if (values[3]) {
      __pyx_v_is_type = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_is_type == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2674, __pyx_L3_error)
    } else {
      __pyx_v_is_type = ((int)0);
    }
    if (values[4]) {
      __pyx_v_cmethod_flag = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_cmethod_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2674, __pyx_L3_error)
    } else {
      __pyx_v_cmethod_flag = ((int)0);
    }
    if (values[5]) {
      __pyx_v_assignable = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_assignable == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2675, __pyx_L3_error)
    } else {
      __pyx_v_assignable = ((int)0);
    }
    if (values[6]) {
      __pyx_v_nonempty = __Pyx_PyObject_IsTrue(values[6]); if (unlikely((__pyx_v_nonempty == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2675, __pyx_L3_error)
    } else {
      __pyx_v_nonempty = ((int)0);
    }
    if (values[7]) {
      __pyx_v_calling_convention_allowed = __Pyx_PyObject_IsTrue(values[7]); if (unlikely((__pyx_v_calling_convention_allowed == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2676, __pyx_L3_error)
    } else {
      __pyx_v_calling_convention_allowed = ((int)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("p_c_declarator", 0, 1, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2674, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_declarator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s), __pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner, 1, "s", 0))) __PYX_ERR(0, 2674, __pyx_L1_error)
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_4p_c_declarator(__pyx_self, __pyx_v_s, __pyx_v_ctx, __pyx_v_empty, __pyx_v_is_type, __pyx_v_cmethod_flag, __pyx_v_assignable, __pyx_v_nonempty, __pyx_v_calling_convention_allowed);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_4p_c_declarator(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, int __pyx_v_empty, int __pyx_v_is_type, int __pyx_v_cmethod_flag, int __pyx_v_assignable, int __pyx_v_nonempty, int __pyx_v_calling_convention_allowed) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator __pyx_t_2;
  __Pyx_RefNannySetupContext("p_c_declarator", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 7;
  __pyx_t_2.ctx = __pyx_v_ctx;
  __pyx_t_2.empty = __pyx_v_empty;
  __pyx_t_2.is_type = __pyx_v_is_type;
  __pyx_t_2.cmethod_flag = __pyx_v_cmethod_flag;
  __pyx_t_2.assignable = __pyx_v_assignable;
  __pyx_t_2.nonempty = __pyx_v_nonempty;
  __pyx_t_2.calling_convention_allowed = __pyx_v_calling_convention_allowed;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(__pyx_v_s, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_declarator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2709
 *     return result
 * 
 * def p_c_array_declarator(s, base):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next() # '['
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_array_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_base) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_dim = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_c_array_declarator", 0);

  /* "Cython/Compiler/Parsing.py":2710
 * 
 * def p_c_array_declarator(s, base):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next() # '['
 *     if s.sy != ']':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2711
 * def p_c_array_declarator(s, base):
 *     pos = s.position()
 *     s.next() # '['             # <<<<<<<<<<<<<<
 *     if s.sy != ']':
 *         dim = p_testlist(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2712
 *     pos = s.position()
 *     s.next() # '['
 *     if s.sy != ']':             # <<<<<<<<<<<<<<
 *         dim = p_testlist(s)
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__43, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2712, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2713
 *     s.next() # '['
 *     if s.sy != ']':
 *         dim = p_testlist(s)             # <<<<<<<<<<<<<<
 *     else:
 *         dim = None
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_dim = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2712
 *     pos = s.position()
 *     s.next() # '['
 *     if s.sy != ']':             # <<<<<<<<<<<<<<
 *         dim = p_testlist(s)
 *     else:
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2715
 *         dim = p_testlist(s)
 *     else:
 *         dim = None             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     return Nodes.CArrayDeclaratorNode(pos, base = base, dimension = dim)
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_dim = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2716
 *     else:
 *         dim = None
 *     s.expect(']')             # <<<<<<<<<<<<<<
 *     return Nodes.CArrayDeclaratorNode(pos, base = base, dimension = dim)
 * 
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2716, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2717
 *         dim = None
 *     s.expect(']')
 *     return Nodes.CArrayDeclaratorNode(pos, base = base, dimension = dim)             # <<<<<<<<<<<<<<
 * 
 * def p_c_func_declarator(s, pos, ctx, base, cmethod_flag):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CArrayDeclaratorNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 2717, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dimension, __pyx_v_dim) < 0) __PYX_ERR(0, 2717, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2709
 *     return result
 * 
 * def p_c_array_declarator(s, base):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next() # '['
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_array_declarator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_dim);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2719
 *     return Nodes.CArrayDeclaratorNode(pos, base = base, dimension = dim)
 * 
 * def p_c_func_declarator(s, pos, ctx, base, cmethod_flag):             # <<<<<<<<<<<<<<
 *     #  Opening paren has already been skipped
 *     args = p_c_arg_list(s, ctx, cmethod_flag = cmethod_flag,
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx, PyObject *__pyx_v_base, int __pyx_v_cmethod_flag) {
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_ellipsis = NULL;
  PyObject *__pyx_v_nogil = NULL;
  PyObject *__pyx_v_exc_val = NULL;
  PyObject *__pyx_v_exc_check = NULL;
  PyObject *__pyx_v_with_gil = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_c_func_declarator", 0);

  /* "Cython/Compiler/Parsing.py":2721
 * def p_c_func_declarator(s, pos, ctx, base, cmethod_flag):
 *     #  Opening paren has already been skipped
 *     args = p_c_arg_list(s, ctx, cmethod_flag = cmethod_flag,             # <<<<<<<<<<<<<<
 *                         nonempty_declarators = 0)
 *     ellipsis = p_optional_ellipsis(s)
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
  __Pyx_INCREF(__pyx_v_ctx);
  __Pyx_GIVEREF(__pyx_v_ctx);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_ctx);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cmethod_flag, __pyx_t_4) < 0) __PYX_ERR(0, 2721, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nonempty_declarators, __pyx_int_0) < 0) __PYX_ERR(0, 2721, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_args = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2723
 *     args = p_c_arg_list(s, ctx, cmethod_flag = cmethod_flag,
 *                         nonempty_declarators = 0)
 *     ellipsis = p_optional_ellipsis(s)             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     nogil = p_nogil(s)
 */
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_optional_ellipsis(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_ellipsis = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2724
 *                         nonempty_declarators = 0)
 *     ellipsis = p_optional_ellipsis(s)
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     nogil = p_nogil(s)
 *     exc_val, exc_check = p_exception_value_clause(s)
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_5 == -2)) __PYX_ERR(0, 2724, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2725
 *     ellipsis = p_optional_ellipsis(s)
 *     s.expect(')')
 *     nogil = p_nogil(s)             # <<<<<<<<<<<<<<
 *     exc_val, exc_check = p_exception_value_clause(s)
 *     with_gil = p_with_gil(s)
 */
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_nogil = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2726
 *     s.expect(')')
 *     nogil = p_nogil(s)
 *     exc_val, exc_check = p_exception_value_clause(s)             # <<<<<<<<<<<<<<
 *     with_gil = p_with_gil(s)
 *     return Nodes.CFuncDeclaratorNode(pos,
 */
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_exception_value_clause(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
    PyObject* sequence = __pyx_t_4;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2726, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 2) < 0) __PYX_ERR(0, 2726, __pyx_L1_error)
    __pyx_t_6 = NULL;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2726, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_exc_val = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_exc_check = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2727
 *     nogil = p_nogil(s)
 *     exc_val, exc_check = p_exception_value_clause(s)
 *     with_gil = p_with_gil(s)             # <<<<<<<<<<<<<<
 *     return Nodes.CFuncDeclaratorNode(pos,
 *         base = base, args = args, has_varargs = ellipsis,
 */
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_gil(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_with_gil = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2728
 *     exc_val, exc_check = p_exception_value_clause(s)
 *     with_gil = p_with_gil(s)
 *     return Nodes.CFuncDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *         base = base, args = args, has_varargs = ellipsis,
 *         exception_value = exc_val, exception_check = exc_check,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CFuncDeclaratorNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2729
 *     with_gil = p_with_gil(s)
 *     return Nodes.CFuncDeclaratorNode(pos,
 *         base = base, args = args, has_varargs = ellipsis,             # <<<<<<<<<<<<<<
 *         exception_value = exc_val, exception_check = exc_check,
 *         nogil = nogil or ctx.nogil or with_gil, with_gil = with_gil)
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_has_varargs, __pyx_v_ellipsis) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2730
 *     return Nodes.CFuncDeclaratorNode(pos,
 *         base = base, args = args, has_varargs = ellipsis,
 *         exception_value = exc_val, exception_check = exc_check,             # <<<<<<<<<<<<<<
 *         nogil = nogil or ctx.nogil or with_gil, with_gil = with_gil)
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_exception_value, __pyx_v_exc_val) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_exception_check, __pyx_v_exc_check) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2731
 *         base = base, args = args, has_varargs = ellipsis,
 *         exception_value = exc_val, exception_check = exc_check,
 *         nogil = nogil or ctx.nogil or with_gil, with_gil = with_gil)             # <<<<<<<<<<<<<<
 * 
 * supported_overloaded_operators = cython.declare(set, set([
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_nogil); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2731, __pyx_L1_error)
  if (!__pyx_t_5) {
  } else {
    __Pyx_INCREF(__pyx_v_nogil);
    __pyx_t_1 = __pyx_v_nogil;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_nogil); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2731, __pyx_L1_error)
  if (!__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_1 = __pyx_t_7;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L5_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_with_gil);
  __pyx_t_1 = __pyx_v_with_gil;
  __pyx_L5_bool_binop_done:;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nogil, __pyx_t_1) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_with_gil, __pyx_v_with_gil) < 0) __PYX_ERR(0, 2729, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2728
 *     exc_val, exc_check = p_exception_value_clause(s)
 *     with_gil = p_with_gil(s)
 *     return Nodes.CFuncDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *         base = base, args = args, has_varargs = ellipsis,
 *         exception_value = exc_val, exception_check = exc_check,
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2719
 *     return Nodes.CArrayDeclaratorNode(pos, base = base, dimension = dim)
 * 
 * def p_c_func_declarator(s, pos, ctx, base, cmethod_flag):             # <<<<<<<<<<<<<<
 *     #  Opening paren has already been skipped
 *     args = p_c_arg_list(s, ctx, cmethod_flag = cmethod_flag,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_func_declarator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_ellipsis);
  __Pyx_XDECREF(__pyx_v_nogil);
  __Pyx_XDECREF(__pyx_v_exc_val);
  __Pyx_XDECREF(__pyx_v_exc_check);
  __Pyx_XDECREF(__pyx_v_with_gil);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2741
 * ]))
 * 
 * def p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,             # <<<<<<<<<<<<<<
 *                           assignable, nonempty):
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_declarator(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, int __pyx_v_empty, int __pyx_v_is_type, int __pyx_v_cmethod_flag, int __pyx_v_assignable, int __pyx_v_nonempty) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_calling_convention = NULL;
  PyObject *__pyx_v_const_pos = NULL;
  PyObject *__pyx_v_const_base = NULL;
  PyObject *__pyx_v_base = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_rhs = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_cname = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  Py_ssize_t __pyx_t_13;
  PyObject *(*__pyx_t_14)(PyObject *);
  __Pyx_RefNannySetupContext("p_c_simple_declarator", 0);

  /* "Cython/Compiler/Parsing.py":2743
 * def p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,
 *                           assignable, nonempty):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     calling_convention = p_calling_convention(s)
 *     if s.sy == '*':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2744
 *                           assignable, nonempty):
 *     pos = s.position()
 *     calling_convention = p_calling_convention(s)             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_calling_convention(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_calling_convention = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2745
 *     pos = s.position()
 *     calling_convention = p_calling_convention(s)
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.systring == 'const':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2745, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2746
 *     calling_convention = p_calling_convention(s)
 *     if s.sy == '*':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.systring == 'const':
 *             const_pos = s.position()
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2747
 *     if s.sy == '*':
 *         s.next()
 *         if s.systring == 'const':             # <<<<<<<<<<<<<<
 *             const_pos = s.position()
 *             s.next()
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_const, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2747, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2748
 *         s.next()
 *         if s.systring == 'const':
 *             const_pos = s.position()             # <<<<<<<<<<<<<<
 *             s.next()
 *             const_base = p_c_declarator(s, ctx, empty = empty,
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2748, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_const_pos = ((PyObject*)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2749
 *         if s.systring == 'const':
 *             const_pos = s.position()
 *             s.next()             # <<<<<<<<<<<<<<
 *             const_base = p_c_declarator(s, ctx, empty = empty,
 *                                        is_type = is_type,
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2749, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2750
 *             const_pos = s.position()
 *             s.next()
 *             const_base = p_c_declarator(s, ctx, empty = empty,             # <<<<<<<<<<<<<<
 *                                        is_type = is_type,
 *                                        cmethod_flag = cmethod_flag,
 */
      __pyx_t_3.__pyx_n = 6;
      __pyx_t_3.ctx = __pyx_v_ctx;
      __pyx_t_3.empty = __pyx_v_empty;
      __pyx_t_3.is_type = __pyx_v_is_type;
      __pyx_t_3.cmethod_flag = __pyx_v_cmethod_flag;
      __pyx_t_3.assignable = __pyx_v_assignable;
      __pyx_t_3.nonempty = __pyx_v_nonempty;
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(__pyx_v_s, 0, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2750, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_const_base = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2755
 *                                        assignable = assignable,
 *                                        nonempty = nonempty)
 *             base = Nodes.CConstDeclaratorNode(const_pos, base = const_base)             # <<<<<<<<<<<<<<
 *         else:
 *             base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CConstDeclaratorNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_const_pos);
      __Pyx_GIVEREF(__pyx_v_const_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_const_pos);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base, __pyx_v_const_base) < 0) __PYX_ERR(0, 2755, __pyx_L1_error)
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_base = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":2747
 *     if s.sy == '*':
 *         s.next()
 *         if s.systring == 'const':             # <<<<<<<<<<<<<<
 *             const_pos = s.position()
 *             s.next()
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":2757
 *             base = Nodes.CConstDeclaratorNode(const_pos, base = const_base)
 *         else:
 *             base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,             # <<<<<<<<<<<<<<
 *                                   cmethod_flag = cmethod_flag,
 *                                   assignable = assignable, nonempty = nonempty)
 */
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2759
 *             base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 *                                   cmethod_flag = cmethod_flag,
 *                                   assignable = assignable, nonempty = nonempty)             # <<<<<<<<<<<<<<
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = base)
 */
      __pyx_t_3.__pyx_n = 6;
      __pyx_t_3.ctx = __pyx_v_ctx;
      __pyx_t_3.empty = __pyx_v_empty;
      __pyx_t_3.is_type = __pyx_v_is_type;
      __pyx_t_3.cmethod_flag = __pyx_v_cmethod_flag;
      __pyx_t_3.assignable = __pyx_v_assignable;
      __pyx_t_3.nonempty = __pyx_v_nonempty;
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(__pyx_v_s, 0, &__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2757, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_v_base = __pyx_t_6;
      __pyx_t_6 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":2760
 *                                   cmethod_flag = cmethod_flag,
 *                                   assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             base = base)
 *     elif s.sy == '**': # scanner returns this as a single token
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CPtrDeclaratorNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":2761
 *                                   assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = base)             # <<<<<<<<<<<<<<
 *     elif s.sy == '**': # scanner returns this as a single token
 *         s.next()
 */
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2761, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 2761, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2760
 *                                   cmethod_flag = cmethod_flag,
 *                                   assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             base = base)
 *     elif s.sy == '**': # scanner returns this as a single token
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2745
 *     pos = s.position()
 *     calling_convention = p_calling_convention(s)
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.systring == 'const':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2762
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = base)
 *     elif s.sy == '**': # scanner returns this as a single token             # <<<<<<<<<<<<<<
 *         s.next()
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2762, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2763
 *             base = base)
 *     elif s.sy == '**': # scanner returns this as a single token
 *         s.next()             # <<<<<<<<<<<<<<
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 *                               cmethod_flag = cmethod_flag,
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2763, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2764
 *     elif s.sy == '**': # scanner returns this as a single token
 *         s.next()
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,             # <<<<<<<<<<<<<<
 *                               cmethod_flag = cmethod_flag,
 *                               assignable = assignable, nonempty = nonempty)
 */
    __pyx_t_3.__pyx_n = 6;
    __pyx_t_3.ctx = __pyx_v_ctx;
    __pyx_t_3.empty = __pyx_v_empty;
    __pyx_t_3.is_type = __pyx_v_is_type;
    __pyx_t_3.cmethod_flag = __pyx_v_cmethod_flag;
    __pyx_t_3.assignable = __pyx_v_assignable;
    __pyx_t_3.nonempty = __pyx_v_nonempty;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(__pyx_v_s, 0, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_base = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2767
 *                               cmethod_flag = cmethod_flag,
 *                               assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             base = Nodes.CPtrDeclaratorNode(pos,
 *                 base = base))
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CPtrDeclaratorNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":2768
 *                               assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *                 base = base))
 *     elif s.sy == '&':
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CPtrDeclaratorNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":2769
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = Nodes.CPtrDeclaratorNode(pos,
 *                 base = base))             # <<<<<<<<<<<<<<
 *     elif s.sy == '&':
 *         s.next()
 */
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 2769, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2768
 *                               assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *                 base = base))
 *     elif s.sy == '&':
 */
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base, __pyx_t_9) < 0) __PYX_ERR(0, 2768, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2767
 *                               cmethod_flag = cmethod_flag,
 *                               assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             base = Nodes.CPtrDeclaratorNode(pos,
 *                 base = base))
 */
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_result = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2762
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = base)
 *     elif s.sy == '**': # scanner returns this as a single token             # <<<<<<<<<<<<<<
 *         s.next()
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2770
 *             base = Nodes.CPtrDeclaratorNode(pos,
 *                 base = base))
 *     elif s.sy == '&':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__13, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2770, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2771
 *                 base = base))
 *     elif s.sy == '&':
 *         s.next()             # <<<<<<<<<<<<<<
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 *                               cmethod_flag = cmethod_flag,
 */
    __pyx_t_9 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2772
 *     elif s.sy == '&':
 *         s.next()
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,             # <<<<<<<<<<<<<<
 *                               cmethod_flag = cmethod_flag,
 *                               assignable = assignable, nonempty = nonempty)
 */
    __pyx_t_3.__pyx_n = 6;
    __pyx_t_3.ctx = __pyx_v_ctx;
    __pyx_t_3.empty = __pyx_v_empty;
    __pyx_t_3.is_type = __pyx_v_is_type;
    __pyx_t_3.cmethod_flag = __pyx_v_cmethod_flag;
    __pyx_t_3.assignable = __pyx_v_assignable;
    __pyx_t_3.nonempty = __pyx_v_nonempty;
    __pyx_t_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator(__pyx_v_s, 0, &__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_v_base = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2775
 *                               cmethod_flag = cmethod_flag,
 *                               assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CReferenceDeclaratorNode(pos, base = base)             # <<<<<<<<<<<<<<
 *     else:
 *         rhs = None
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CReferenceDeclaratorNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 2775, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2770
 *             base = Nodes.CPtrDeclaratorNode(pos,
 *                 base = base))
 *     elif s.sy == '&':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base = p_c_declarator(s, ctx, empty = empty, is_type = is_type,
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2777
 *         result = Nodes.CReferenceDeclaratorNode(pos, base = base)
 *     else:
 *         rhs = None             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT':
 *             name = s.systring
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_rhs = Py_None;

    /* "Cython/Compiler/Parsing.py":2778
 *     else:
 *         rhs = None
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             name = s.systring
 *             if empty:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2778, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2779
 *         rhs = None
 *         if s.sy == 'IDENT':
 *             name = s.systring             # <<<<<<<<<<<<<<
 *             if empty:
 *                 error(s.position(), "Declarator should be empty")
 */
      __pyx_t_1 = __pyx_v_s->systring;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_v_name = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2780
 *         if s.sy == 'IDENT':
 *             name = s.systring
 *             if empty:             # <<<<<<<<<<<<<<
 *                 error(s.position(), "Declarator should be empty")
 *             s.next()
 */
      __pyx_t_2 = (__pyx_v_empty != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2781
 *             name = s.systring
 *             if empty:
 *                 error(s.position(), "Declarator should be empty")             # <<<<<<<<<<<<<<
 *             s.next()
 *             cname = p_opt_cname(s)
 */
        __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_9 = NULL;
        __pyx_t_10 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_10 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_kp_u_Declarator_should_be_empty};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_kp_u_Declarator_should_be_empty};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_9) {
            __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_10, __pyx_t_4);
          __Pyx_INCREF(__pyx_kp_u_Declarator_should_be_empty);
          __Pyx_GIVEREF(__pyx_kp_u_Declarator_should_be_empty);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_kp_u_Declarator_should_be_empty);
          __pyx_t_4 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2780
 *         if s.sy == 'IDENT':
 *             name = s.systring
 *             if empty:             # <<<<<<<<<<<<<<
 *                 error(s.position(), "Declarator should be empty")
 *             s.next()
 */
      }

      /* "Cython/Compiler/Parsing.py":2782
 *             if empty:
 *                 error(s.position(), "Declarator should be empty")
 *             s.next()             # <<<<<<<<<<<<<<
 *             cname = p_opt_cname(s)
 *             if name != 'operator' and s.sy == '=' and assignable:
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2783
 *                 error(s.position(), "Declarator should be empty")
 *             s.next()
 *             cname = p_opt_cname(s)             # <<<<<<<<<<<<<<
 *             if name != 'operator' and s.sy == '=' and assignable:
 *                 s.next()
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_cname = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2784
 *             s.next()
 *             cname = p_opt_cname(s)
 *             if name != 'operator' and s.sy == '=' and assignable:             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 rhs = p_test(s)
 */
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_operator, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2784, __pyx_L1_error)
      if (__pyx_t_11) {
      } else {
        __pyx_t_2 = __pyx_t_11;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2784, __pyx_L1_error)
      if (__pyx_t_11) {
      } else {
        __pyx_t_2 = __pyx_t_11;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_11 = (__pyx_v_assignable != 0);
      __pyx_t_2 = __pyx_t_11;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2785
 *             cname = p_opt_cname(s)
 *             if name != 'operator' and s.sy == '=' and assignable:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 rhs = p_test(s)
 *         else:
 */
        __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2785, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2786
 *             if name != 'operator' and s.sy == '=' and assignable:
 *                 s.next()
 *                 rhs = p_test(s)             # <<<<<<<<<<<<<<
 *         else:
 *             if nonempty:
 */
        __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_rhs, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2784
 *             s.next()
 *             cname = p_opt_cname(s)
 *             if name != 'operator' and s.sy == '=' and assignable:             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 rhs = p_test(s)
 */
      }

      /* "Cython/Compiler/Parsing.py":2778
 *     else:
 *         rhs = None
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             name = s.systring
 *             if empty:
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":2788
 *                 rhs = p_test(s)
 *         else:
 *             if nonempty:             # <<<<<<<<<<<<<<
 *                 error(s.position(), "Empty declarator")
 *             name = ""
 */
    /*else*/ {
      __pyx_t_2 = (__pyx_v_nonempty != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2789
 *         else:
 *             if nonempty:
 *                 error(s.position(), "Empty declarator")             # <<<<<<<<<<<<<<
 *             name = ""
 *             cname = None
 */
        __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2789, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_8 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_4 = NULL;
        __pyx_t_10 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_10 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_5, __pyx_kp_u_Empty_declarator};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2789, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_5, __pyx_kp_u_Empty_declarator};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2789, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2789, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_5);
          __Pyx_INCREF(__pyx_kp_u_Empty_declarator);
          __Pyx_GIVEREF(__pyx_kp_u_Empty_declarator);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_kp_u_Empty_declarator);
          __pyx_t_5 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2789, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2788
 *                 rhs = p_test(s)
 *         else:
 *             if nonempty:             # <<<<<<<<<<<<<<
 *                 error(s.position(), "Empty declarator")
 *             name = ""
 */
      }

      /* "Cython/Compiler/Parsing.py":2790
 *             if nonempty:
 *                 error(s.position(), "Empty declarator")
 *             name = ""             # <<<<<<<<<<<<<<
 *             cname = None
 *         if cname is None and ctx.namespace is not None and nonempty:
 */
      __Pyx_INCREF(__pyx_kp_u__50);
      __pyx_v_name = __pyx_kp_u__50;

      /* "Cython/Compiler/Parsing.py":2791
 *                 error(s.position(), "Empty declarator")
 *             name = ""
 *             cname = None             # <<<<<<<<<<<<<<
 *         if cname is None and ctx.namespace is not None and nonempty:
 *             cname = ctx.namespace + "::" + name
 */
      __Pyx_INCREF(Py_None);
      __pyx_v_cname = Py_None;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":2792
 *             name = ""
 *             cname = None
 *         if cname is None and ctx.namespace is not None and nonempty:             # <<<<<<<<<<<<<<
 *             cname = ctx.namespace + "::" + name
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:
 */
    __pyx_t_11 = (__pyx_v_cname == Py_None);
    __pyx_t_12 = (__pyx_t_11 != 0);
    if (__pyx_t_12) {
    } else {
      __pyx_t_2 = __pyx_t_12;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2792, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = (__pyx_t_1 != Py_None);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_11 = (__pyx_t_12 != 0);
    if (__pyx_t_11) {
    } else {
      __pyx_t_2 = __pyx_t_11;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_11 = (__pyx_v_nonempty != 0);
    __pyx_t_2 = __pyx_t_11;
    __pyx_L13_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2793
 *             cname = None
 *         if cname is None and ctx.namespace is not None and nonempty:
 *             cname = ctx.namespace + "::" + name             # <<<<<<<<<<<<<<
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:
 *             op = s.sy
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__120); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF_SET(__pyx_v_cname, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2792
 *             name = ""
 *             cname = None
 *         if cname is None and ctx.namespace is not None and nonempty:             # <<<<<<<<<<<<<<
 *             cname = ctx.namespace + "::" + name
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:
 */
    }

    /* "Cython/Compiler/Parsing.py":2794
 *         if cname is None and ctx.namespace is not None and nonempty:
 *             cname = ctx.namespace + "::" + name
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:             # <<<<<<<<<<<<<<
 *             op = s.sy
 *             if [1 for c in op if c in '+-*[inserted by cython to avoid comment closer]/<=>!%&|([^~,']:
 */
    __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_operator, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2794, __pyx_L1_error)
    if (__pyx_t_11) {
    } else {
      __pyx_t_2 = __pyx_t_11;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2794, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2794, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_11) {
    } else {
      __pyx_t_2 = __pyx_t_11;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_11 = (__pyx_v_nonempty != 0);
    __pyx_t_2 = __pyx_t_11;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2795
 *             cname = ctx.namespace + "::" + name
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:
 *             op = s.sy             # <<<<<<<<<<<<<<
 *             if [1 for c in op if c in '+-*[inserted by cython to avoid comment closer]/<=>!%&|([^~,']:
 *                 s.next()
 */
      __pyx_t_1 = __pyx_v_s->sy;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_v_op = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2796
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:
 *             op = s.sy
 *             if [1 for c in op if c in '+-*[inserted by cython to avoid comment closer]/<=>!%&|([^~,']:             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 # Handle diphthong operators.
 */
      { /* enter inner scope */
        PyObject *__pyx_8genexpr4__pyx_v_c = NULL;
        __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2796, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_v_op)) || PyTuple_CheckExact(__pyx_v_op)) {
          __pyx_t_8 = __pyx_v_op; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2796, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_14 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2796, __pyx_L23_error)
        }
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2796, __pyx_L23_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2796, __pyx_L23_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2796, __pyx_L23_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2796, __pyx_L23_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            }
          } else {
            __pyx_t_9 = __pyx_t_14(__pyx_t_8);
            if (unlikely(!__pyx_t_9)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2796, __pyx_L23_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_9);
          }
          __Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v_c, __pyx_t_9);
          __pyx_t_9 = 0;
          __pyx_t_2 = (__Pyx_PyUnicode_ContainsTF(__pyx_8genexpr4__pyx_v_c, __pyx_kp_u__121, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2796, __pyx_L23_error)
          __pyx_t_11 = (__pyx_t_2 != 0);
          if (__pyx_t_11) {
            if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_int_1))) __PYX_ERR(0, 2796, __pyx_L23_error)
          }
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_c);
        goto __pyx_L27_exit_scope;
        __pyx_L23_error:;
        __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_c);
        goto __pyx_L1_error;
        __pyx_L27_exit_scope:;
      } /* exit inner scope */
      __pyx_t_11 = (__pyx_t_1 != Py_None) && (PyList_GET_SIZE(__pyx_t_1) != 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_11) {

        /* "Cython/Compiler/Parsing.py":2797
 *             op = s.sy
 *             if [1 for c in op if c in '+-*[inserted by cython to avoid comment closer]/<=>!%&|([^~,']:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 # Handle diphthong operators.
 *                 if op == '(':
 */
        __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2797, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2799
 *                 s.next()
 *                 # Handle diphthong operators.
 *                 if op == '(':             # <<<<<<<<<<<<<<
 *                     s.expect(')')
 *                     op = '()'
 */
        __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2799, __pyx_L1_error)
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2800
 *                 # Handle diphthong operators.
 *                 if op == '(':
 *                     s.expect(')')             # <<<<<<<<<<<<<<
 *                     op = '()'
 *                 elif op == '[':
 */
          __pyx_t_11 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_11 == -2)) __PYX_ERR(0, 2800, __pyx_L1_error)

          /* "Cython/Compiler/Parsing.py":2801
 *                 if op == '(':
 *                     s.expect(')')
 *                     op = '()'             # <<<<<<<<<<<<<<
 *                 elif op == '[':
 *                     s.expect(']')
 */
          __Pyx_INCREF(__pyx_kp_u__122);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_kp_u__122);

          /* "Cython/Compiler/Parsing.py":2799
 *                 s.next()
 *                 # Handle diphthong operators.
 *                 if op == '(':             # <<<<<<<<<<<<<<
 *                     s.expect(')')
 *                     op = '()'
 */
          goto __pyx_L28;
        }

        /* "Cython/Compiler/Parsing.py":2802
 *                     s.expect(')')
 *                     op = '()'
 *                 elif op == '[':             # <<<<<<<<<<<<<<
 *                     s.expect(']')
 *                     op = '[]'
 */
        __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2802, __pyx_L1_error)
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2803
 *                     op = '()'
 *                 elif op == '[':
 *                     s.expect(']')             # <<<<<<<<<<<<<<
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 */
          __pyx_t_11 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_11 == -2)) __PYX_ERR(0, 2803, __pyx_L1_error)

          /* "Cython/Compiler/Parsing.py":2804
 *                 elif op == '[':
 *                     s.expect(']')
 *                     op = '[]'             # <<<<<<<<<<<<<<
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 *                     op *= 2       # ++, --, ...
 */
          __Pyx_INCREF(__pyx_kp_u__123);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_kp_u__123);

          /* "Cython/Compiler/Parsing.py":2802
 *                     s.expect(')')
 *                     op = '()'
 *                 elif op == '[':             # <<<<<<<<<<<<<<
 *                     s.expect(']')
 *                     op = '[]'
 */
          goto __pyx_L28;
        }

        /* "Cython/Compiler/Parsing.py":2805
 *                     s.expect(']')
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:             # <<<<<<<<<<<<<<
 *                     op *= 2       # ++, --, ...
 *                     s.next()
 */
        __Pyx_INCREF(__pyx_v_op);
        __pyx_t_1 = __pyx_v_op;
        __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__19, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2805, __pyx_L1_error)
        if (!__pyx_t_12) {
        } else {
          __pyx_t_2 = __pyx_t_12;
          goto __pyx_L31_bool_binop_done;
        }
        __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__18, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2805, __pyx_L1_error)
        if (!__pyx_t_12) {
        } else {
          __pyx_t_2 = __pyx_t_12;
          goto __pyx_L31_bool_binop_done;
        }
        __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__9, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2805, __pyx_L1_error)
        if (!__pyx_t_12) {
        } else {
          __pyx_t_2 = __pyx_t_12;
          goto __pyx_L31_bool_binop_done;
        }
        __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__13, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2805, __pyx_L1_error)
        __pyx_t_2 = __pyx_t_12;
        __pyx_L31_bool_binop_done:;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_12 = (__pyx_t_2 != 0);
        if (__pyx_t_12) {
        } else {
          __pyx_t_11 = __pyx_t_12;
          goto __pyx_L29_bool_binop_done;
        }
        __pyx_t_1 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_v_op, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2805, __pyx_L1_error)
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2805, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_11 = __pyx_t_12;
        __pyx_L29_bool_binop_done:;
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2806
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 *                     op *= 2       # ++, --, ...             # <<<<<<<<<<<<<<
 *                     s.next()
 *                 elif s.sy == '=':
 */
          __pyx_t_1 = PyNumber_InPlaceMultiply(__pyx_v_op, __pyx_int_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2806, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_t_1);
          __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":2807
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 *                     op *= 2       # ++, --, ...
 *                     s.next()             # <<<<<<<<<<<<<<
 *                 elif s.sy == '=':
 *                     op += s.sy    # +=, -=, ...
 */
          __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2807, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":2805
 *                     s.expect(']')
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:             # <<<<<<<<<<<<<<
 *                     op *= 2       # ++, --, ...
 *                     s.next()
 */
          goto __pyx_L28;
        }

        /* "Cython/Compiler/Parsing.py":2808
 *                     op *= 2       # ++, --, ...
 *                     s.next()
 *                 elif s.sy == '=':             # <<<<<<<<<<<<<<
 *                     op += s.sy    # +=, -=, ...
 *                     s.next()
 */
        __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2808, __pyx_L1_error)
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2809
 *                     s.next()
 *                 elif s.sy == '=':
 *                     op += s.sy    # +=, -=, ...             # <<<<<<<<<<<<<<
 *                     s.next()
 *                 if op not in supported_overloaded_operators:
 */
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_op, __pyx_v_s->sy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2809, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_t_1);
          __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":2810
 *                 elif s.sy == '=':
 *                     op += s.sy    # +=, -=, ...
 *                     s.next()             # <<<<<<<<<<<<<<
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 */
          __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2810, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":2808
 *                     op *= 2       # ++, --, ...
 *                     s.next()
 *                 elif s.sy == '=':             # <<<<<<<<<<<<<<
 *                     op += s.sy    # +=, -=, ...
 *                     s.next()
 */
        }
        __pyx_L28:;

        /* "Cython/Compiler/Parsing.py":2811
 *                     op += s.sy    # +=, -=, ...
 *                     s.next()
 *                 if op not in supported_overloaded_operators:             # <<<<<<<<<<<<<<
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 */
        __pyx_t_11 = (__Pyx_PySequence_ContainsTF(__pyx_v_op, __pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __pyx_t_12 = (__pyx_t_11 != 0);
        if (__pyx_t_12) {

          /* "Cython/Compiler/Parsing.py":2812
 *                     s.next()
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,             # <<<<<<<<<<<<<<
 *                             fatal=False)
 *                 name += op
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2812, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_Overloading_operator_s_not_yet_s, __pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2812, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2812, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
          __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":2813
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)             # <<<<<<<<<<<<<<
 *                 name += op
 *             elif op == 'IDENT':
 */
          __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2813, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 2813, __pyx_L1_error)

          /* "Cython/Compiler/Parsing.py":2812
 *                     s.next()
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,             # <<<<<<<<<<<<<<
 *                             fatal=False)
 *                 name += op
 */
          __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2812, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

          /* "Cython/Compiler/Parsing.py":2811
 *                     op += s.sy    # +=, -=, ...
 *                     s.next()
 *                 if op not in supported_overloaded_operators:             # <<<<<<<<<<<<<<
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 */
        }

        /* "Cython/Compiler/Parsing.py":2814
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 *                 name += op             # <<<<<<<<<<<<<<
 *             elif op == 'IDENT':
 *                 op = s.systring;
 */
        __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_name, __pyx_v_op); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2814, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":2796
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:
 *             op = s.sy
 *             if [1 for c in op if c in '+-*[inserted by cython to avoid comment closer]/<=>!%&|([^~,']:             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 # Handle diphthong operators.
 */
        goto __pyx_L20;
      }

      /* "Cython/Compiler/Parsing.py":2815
 *                             fatal=False)
 *                 name += op
 *             elif op == 'IDENT':             # <<<<<<<<<<<<<<
 *                 op = s.systring;
 *                 if op not in supported_overloaded_operators:
 */
      __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2815, __pyx_L1_error)
      if (__pyx_t_12) {

        /* "Cython/Compiler/Parsing.py":2816
 *                 name += op
 *             elif op == 'IDENT':
 *                 op = s.systring;             # <<<<<<<<<<<<<<
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 */
        __pyx_t_5 = __pyx_v_s->systring;
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_DECREF_SET(__pyx_v_op, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":2817
 *             elif op == 'IDENT':
 *                 op = s.systring;
 *                 if op not in supported_overloaded_operators:             # <<<<<<<<<<<<<<
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 */
        __pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_v_op, __pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 2817, __pyx_L1_error)
        __pyx_t_11 = (__pyx_t_12 != 0);
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2818
 *                 op = s.systring;
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,             # <<<<<<<<<<<<<<
 *                             fatal=False)
 *                 name = name + ' ' + op
 */
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_Overloading_operator_s_not_yet_s, __pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
          __pyx_t_8 = 0;

          /* "Cython/Compiler/Parsing.py":2819
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)             # <<<<<<<<<<<<<<
 *                 name = name + ' ' + op
 *                 s.next()
 */
          __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 2819, __pyx_L1_error)

          /* "Cython/Compiler/Parsing.py":2818
 *                 op = s.systring;
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,             # <<<<<<<<<<<<<<
 *                             fatal=False)
 *                 name = name + ' ' + op
 */
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":2817
 *             elif op == 'IDENT':
 *                 op = s.systring;
 *                 if op not in supported_overloaded_operators:             # <<<<<<<<<<<<<<
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 */
        }

        /* "Cython/Compiler/Parsing.py":2820
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 *                 name = name + ' ' + op             # <<<<<<<<<<<<<<
 *                 s.next()
 *         result = Nodes.CNameDeclaratorNode(pos,
 */
        __pyx_t_1 = PyNumber_Add(__pyx_v_name, __pyx_kp_u__124); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2820, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2820, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":2821
 *                             fatal=False)
 *                 name = name + ' ' + op
 *                 s.next()             # <<<<<<<<<<<<<<
 *         result = Nodes.CNameDeclaratorNode(pos,
 *             name = name, cname = cname, default = rhs)
 */
        __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2821, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":2815
 *                             fatal=False)
 *                 name += op
 *             elif op == 'IDENT':             # <<<<<<<<<<<<<<
 *                 op = s.systring;
 *                 if op not in supported_overloaded_operators:
 */
      }
      __pyx_L20:;

      /* "Cython/Compiler/Parsing.py":2794
 *         if cname is None and ctx.namespace is not None and nonempty:
 *             cname = ctx.namespace + "::" + name
 *         if name == 'operator' and ctx.visibility == 'extern' and nonempty:             # <<<<<<<<<<<<<<
 *             op = s.sy
 *             if [1 for c in op if c in '+-*[inserted by cython to avoid comment closer]/<=>!%&|([^~,']:
 */
    }

    /* "Cython/Compiler/Parsing.py":2822
 *                 name = name + ' ' + op
 *                 s.next()
 *         result = Nodes.CNameDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             name = name, cname = cname, default = rhs)
 *     result.calling_convention = calling_convention
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CNameDeclaratorNode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":2823
 *                 s.next()
 *         result = Nodes.CNameDeclaratorNode(pos,
 *             name = name, cname = cname, default = rhs)             # <<<<<<<<<<<<<<
 *     result.calling_convention = calling_convention
 *     return result
 */
    __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 2823, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_cname, __pyx_v_cname) < 0) __PYX_ERR(0, 2823, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_default, __pyx_v_rhs) < 0) __PYX_ERR(0, 2823, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2822
 *                 name = name + ' ' + op
 *                 s.next()
 *         result = Nodes.CNameDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             name = name, cname = cname, default = rhs)
 *     result.calling_convention = calling_convention
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_result = __pyx_t_5;
    __pyx_t_5 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2824
 *         result = Nodes.CNameDeclaratorNode(pos,
 *             name = name, cname = cname, default = rhs)
 *     result.calling_convention = calling_convention             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_calling_convention, __pyx_v_calling_convention) < 0) __PYX_ERR(0, 2824, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2825
 *             name = name, cname = cname, default = rhs)
 *     result.calling_convention = calling_convention
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_nogil(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2741
 * ]))
 * 
 * def p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,             # <<<<<<<<<<<<<<
 *                           assignable, nonempty):
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_simple_declarator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_calling_convention);
  __Pyx_XDECREF(__pyx_v_const_pos);
  __Pyx_XDECREF(__pyx_v_const_base);
  __Pyx_XDECREF(__pyx_v_base);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_rhs);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_cname);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2827
 *     return result
 * 
 * def p_nogil(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'nogil':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_nogil(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_nogil", 0);

  /* "Cython/Compiler/Parsing.py":2828
 * 
 * def p_nogil(s):
 *     if s.sy == 'IDENT' and s.systring == 'nogil':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return 1
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2828, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_nogil, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2828, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2829
 * def p_nogil(s):
 *     if s.sy == 'IDENT' and s.systring == 'nogil':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return 1
 *     else:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2829, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2830
 *     if s.sy == 'IDENT' and s.systring == 'nogil':
 *         s.next()
 *         return 1             # <<<<<<<<<<<<<<
 *     else:
 *         return 0
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2828
 * 
 * def p_nogil(s):
 *     if s.sy == 'IDENT' and s.systring == 'nogil':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return 1
 */
  }

  /* "Cython/Compiler/Parsing.py":2832
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_with_gil(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2827
 *     return result
 * 
 * def p_nogil(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'nogil':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_nogil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2834
 *         return 0
 * 
 * def p_with_gil(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'with':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_with_gil(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_with_gil", 0);

  /* "Cython/Compiler/Parsing.py":2835
 * 
 * def p_with_gil(s):
 *     if s.sy == 'with':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect_keyword('gil')
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_with, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2835, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2836
 * def p_with_gil(s):
 *     if s.sy == 'with':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect_keyword('gil')
 *         return 1
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2837
 *     if s.sy == 'with':
 *         s.next()
 *         s.expect_keyword('gil')             # <<<<<<<<<<<<<<
 *         return 1
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_keyword(__pyx_v_s, __pyx_n_u_gil, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2837, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2838
 *         s.next()
 *         s.expect_keyword('gil')
 *         return 1             # <<<<<<<<<<<<<<
 *     else:
 *         return 0
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2835
 * 
 * def p_with_gil(s):
 *     if s.sy == 'with':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect_keyword('gil')
 */
  }

  /* "Cython/Compiler/Parsing.py":2840
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_exception_value_clause(s):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2834
 *         return 0
 * 
 * def p_with_gil(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'with':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_with_gil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2842
 *         return 0
 * 
 * def p_exception_value_clause(s):             # <<<<<<<<<<<<<<
 *     exc_val = None
 *     exc_check = 0
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_exception_value_clause(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_exc_val = NULL;
  PyObject *__pyx_v_exc_check = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_exception_value_clause", 0);

  /* "Cython/Compiler/Parsing.py":2843
 * 
 * def p_exception_value_clause(s):
 *     exc_val = None             # <<<<<<<<<<<<<<
 *     exc_check = 0
 *     if s.sy == 'except':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_exc_val = Py_None;

  /* "Cython/Compiler/Parsing.py":2844
 * def p_exception_value_clause(s):
 *     exc_val = None
 *     exc_check = 0             # <<<<<<<<<<<<<<
 *     if s.sy == 'except':
 *         s.next()
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_exc_check = __pyx_int_0;

  /* "Cython/Compiler/Parsing.py":2845
 *     exc_val = None
 *     exc_check = 0
 *     if s.sy == 'except':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == '*':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_except, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2845, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2846
 *     exc_check = 0
 *     if s.sy == 'except':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == '*':
 *             exc_check = 1
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2847
 *     if s.sy == 'except':
 *         s.next()
 *         if s.sy == '*':             # <<<<<<<<<<<<<<
 *             exc_check = 1
 *             s.next()
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2847, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2848
 *         s.next()
 *         if s.sy == '*':
 *             exc_check = 1             # <<<<<<<<<<<<<<
 *             s.next()
 *         elif s.sy == '+':
 */
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF_SET(__pyx_v_exc_check, __pyx_int_1);

      /* "Cython/Compiler/Parsing.py":2849
 *         if s.sy == '*':
 *             exc_check = 1
 *             s.next()             # <<<<<<<<<<<<<<
 *         elif s.sy == '+':
 *             exc_check = '+'
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2849, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2847
 *     if s.sy == 'except':
 *         s.next()
 *         if s.sy == '*':             # <<<<<<<<<<<<<<
 *             exc_check = 1
 *             s.next()
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":2850
 *             exc_check = 1
 *             s.next()
 *         elif s.sy == '+':             # <<<<<<<<<<<<<<
 *             exc_check = '+'
 *             s.next()
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__18, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2850, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2851
 *             s.next()
 *         elif s.sy == '+':
 *             exc_check = '+'             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == 'IDENT':
 */
      __Pyx_INCREF(__pyx_kp_u__18);
      __Pyx_DECREF_SET(__pyx_v_exc_check, __pyx_kp_u__18);

      /* "Cython/Compiler/Parsing.py":2852
 *         elif s.sy == '+':
 *             exc_check = '+'
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == 'IDENT':
 *                 name = s.systring
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2853
 *             exc_check = '+'
 *             s.next()
 *             if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *                 name = s.systring
 *                 s.next()
 */
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2853, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":2854
 *             s.next()
 *             if s.sy == 'IDENT':
 *                 name = s.systring             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 exc_val = p_name(s, name)
 */
        __pyx_t_2 = __pyx_v_s->systring;
        __Pyx_INCREF(__pyx_t_2);
        __pyx_v_name = __pyx_t_2;
        __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2855
 *             if s.sy == 'IDENT':
 *                 name = s.systring
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 exc_val = p_name(s, name)
 *         else:
 */
        __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2856
 *                 name = s.systring
 *                 s.next()
 *                 exc_val = p_name(s, name)             # <<<<<<<<<<<<<<
 *         else:
 *             if s.sy == '?':
 */
        __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_name(__pyx_v_s, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2856, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF_SET(__pyx_v_exc_val, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2853
 *             exc_check = '+'
 *             s.next()
 *             if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *                 name = s.systring
 *                 s.next()
 */
      }

      /* "Cython/Compiler/Parsing.py":2850
 *             exc_check = 1
 *             s.next()
 *         elif s.sy == '+':             # <<<<<<<<<<<<<<
 *             exc_check = '+'
 *             s.next()
 */
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":2858
 *                 exc_val = p_name(s, name)
 *         else:
 *             if s.sy == '?':             # <<<<<<<<<<<<<<
 *                 exc_check = 1
 *                 s.next()
 */
    /*else*/ {
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__28, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2858, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":2859
 *         else:
 *             if s.sy == '?':
 *                 exc_check = 1             # <<<<<<<<<<<<<<
 *                 s.next()
 *             exc_val = p_test(s)
 */
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_DECREF_SET(__pyx_v_exc_check, __pyx_int_1);

        /* "Cython/Compiler/Parsing.py":2860
 *             if s.sy == '?':
 *                 exc_check = 1
 *                 s.next()             # <<<<<<<<<<<<<<
 *             exc_val = p_test(s)
 *     return exc_val, exc_check
 */
        __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2858
 *                 exc_val = p_name(s, name)
 *         else:
 *             if s.sy == '?':             # <<<<<<<<<<<<<<
 *                 exc_check = 1
 *                 s.next()
 */
      }

      /* "Cython/Compiler/Parsing.py":2861
 *                 exc_check = 1
 *                 s.next()
 *             exc_val = p_test(s)             # <<<<<<<<<<<<<<
 *     return exc_val, exc_check
 * 
 */
      __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2861, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_exc_val, __pyx_t_2);
      __pyx_t_2 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":2845
 *     exc_val = None
 *     exc_check = 0
 *     if s.sy == 'except':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == '*':
 */
  }

  /* "Cython/Compiler/Parsing.py":2862
 *                 s.next()
 *             exc_val = p_test(s)
 *     return exc_val, exc_check             # <<<<<<<<<<<<<<
 * 
 * c_arg_list_terminators = cython.declare(set, set(['*', '**', '.', ')', ':']))
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_exc_val);
  __Pyx_GIVEREF(__pyx_v_exc_val);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_exc_val);
  __Pyx_INCREF(__pyx_v_exc_check);
  __Pyx_GIVEREF(__pyx_v_exc_check);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_exc_check);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2842
 *         return 0
 * 
 * def p_exception_value_clause(s):             # <<<<<<<<<<<<<<
 *     exc_val = None
 *     exc_check = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_exception_value_clause", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_exc_val);
  __Pyx_XDECREF(__pyx_v_exc_check);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2866
 * c_arg_list_terminators = cython.declare(set, set(['*', '**', '.', ')', ':']))
 * 
 * def p_c_arg_list(s, ctx = Ctx(), in_pyfunc = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                  nonempty_declarators = 0, kw_only = 0, annotated = 1):
 *     #  Comma-separated list of C argument declarations, possibly empty.
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_7p_c_arg_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_list(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_list *__pyx_optional_args) {
  PyObject *__pyx_v_ctx = __pyx_k__125;
  int __pyx_v_in_pyfunc = ((int)0);
  int __pyx_v_cmethod_flag = ((int)0);
  int __pyx_v_nonempty_declarators = ((int)0);
  int __pyx_v_kw_only = ((int)0);
  int __pyx_v_annotated = ((int)1);
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_is_self_arg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_decl __pyx_t_5;
  int __pyx_t_6;
  __Pyx_RefNannySetupContext("p_c_arg_list", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ctx = __pyx_optional_args->ctx;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_in_pyfunc = __pyx_optional_args->in_pyfunc;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_cmethod_flag = __pyx_optional_args->cmethod_flag;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_nonempty_declarators = __pyx_optional_args->nonempty_declarators;
            if (__pyx_optional_args->__pyx_n > 4) {
              __pyx_v_kw_only = __pyx_optional_args->kw_only;
              if (__pyx_optional_args->__pyx_n > 5) {
                __pyx_v_annotated = __pyx_optional_args->annotated;
              }
            }
          }
        }
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":2870
 *     #  Comma-separated list of C argument declarations, possibly empty.
 *     #  May have a trailing comma.
 *     args = []             # <<<<<<<<<<<<<<
 *     is_self_arg = cmethod_flag
 *     while s.sy not in c_arg_list_terminators:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2871
 *     #  May have a trailing comma.
 *     args = []
 *     is_self_arg = cmethod_flag             # <<<<<<<<<<<<<<
 *     while s.sy not in c_arg_list_terminators:
 *         args.append(p_c_arg_decl(s, ctx, in_pyfunc, is_self_arg,
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_is_self_arg = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2872
 *     args = []
 *     is_self_arg = cmethod_flag
 *     while s.sy not in c_arg_list_terminators:             # <<<<<<<<<<<<<<
 *         args.append(p_c_arg_decl(s, ctx, in_pyfunc, is_self_arg,
 *             nonempty = nonempty_declarators, kw_only = kw_only,
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_c_arg_list_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2872, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":2873
 *     is_self_arg = cmethod_flag
 *     while s.sy not in c_arg_list_terminators:
 *         args.append(p_c_arg_decl(s, ctx, in_pyfunc, is_self_arg,             # <<<<<<<<<<<<<<
 *             nonempty = nonempty_declarators, kw_only = kw_only,
 *             annotated = annotated))
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_in_pyfunc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2873, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_is_self_arg); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2873, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2875
 *         args.append(p_c_arg_decl(s, ctx, in_pyfunc, is_self_arg,
 *             nonempty = nonempty_declarators, kw_only = kw_only,
 *             annotated = annotated))             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
    __pyx_t_5.__pyx_n = 4;
    __pyx_t_5.cmethod_flag = __pyx_t_3;
    __pyx_t_5.nonempty = __pyx_v_nonempty_declarators;
    __pyx_t_5.kw_only = __pyx_v_kw_only;
    __pyx_t_5.annotated = __pyx_v_annotated;
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_decl(__pyx_v_s, __pyx_v_ctx, __pyx_t_1, &__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2873, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2873
 *     is_self_arg = cmethod_flag
 *     while s.sy not in c_arg_list_terminators:
 *         args.append(p_c_arg_decl(s, ctx, in_pyfunc, is_self_arg,             # <<<<<<<<<<<<<<
 *             nonempty = nonempty_declarators, kw_only = kw_only,
 *             annotated = annotated))
 */
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_4); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 2873, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2876
 *             nonempty = nonempty_declarators, kw_only = kw_only,
 *             annotated = annotated))
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2876, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2877
 *             annotated = annotated))
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *         is_self_arg = 0
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":2876
 *             nonempty = nonempty_declarators, kw_only = kw_only,
 *             annotated = annotated))
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":2878
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *         is_self_arg = 0
 *     return args
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2878, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2879
 *             break
 *         s.next()
 *         is_self_arg = 0             # <<<<<<<<<<<<<<
 *     return args
 * 
 */
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF_SET(__pyx_v_is_self_arg, __pyx_int_0);
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":2880
 *         s.next()
 *         is_self_arg = 0
 *     return args             # <<<<<<<<<<<<<<
 * 
 * def p_optional_ellipsis(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_args);
  __pyx_r = __pyx_v_args;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2866
 * c_arg_list_terminators = cython.declare(set, set(['*', '**', '.', ')', ':']))
 * 
 * def p_c_arg_list(s, ctx = Ctx(), in_pyfunc = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                  nonempty_declarators = 0, kw_only = 0, annotated = 1):
 *     #  Comma-separated list of C argument declarations, possibly empty.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_arg_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_is_self_arg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_7p_c_arg_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_7p_c_arg_list = {"p_c_arg_list", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_7p_c_arg_list, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_7p_c_arg_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s = 0;
  PyObject *__pyx_v_ctx = 0;
  int __pyx_v_in_pyfunc;
  int __pyx_v_cmethod_flag;
  int __pyx_v_nonempty_declarators;
  int __pyx_v_kw_only;
  int __pyx_v_annotated;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_c_arg_list (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_ctx,&__pyx_n_s_in_pyfunc,&__pyx_n_s_cmethod_flag,&__pyx_n_s_nonempty_declarators,&__pyx_n_s_kw_only,&__pyx_n_s_annotated,0};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[1] = __pyx_k__125;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ctx);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_in_pyfunc);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmethod_flag);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nonempty_declarators);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_kw_only);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_annotated);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "p_c_arg_list") < 0)) __PYX_ERR(0, 2866, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_s = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)values[0]);
    __pyx_v_ctx = values[1];
    if (values[2]) {
      __pyx_v_in_pyfunc = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_in_pyfunc == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2866, __pyx_L3_error)
    } else {
      __pyx_v_in_pyfunc = ((int)0);
    }
    if (values[3]) {
      __pyx_v_cmethod_flag = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_cmethod_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2866, __pyx_L3_error)
    } else {
      __pyx_v_cmethod_flag = ((int)0);
    }
    if (values[4]) {
      __pyx_v_nonempty_declarators = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_nonempty_declarators == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2867, __pyx_L3_error)
    } else {
      __pyx_v_nonempty_declarators = ((int)0);
    }
    if (values[5]) {
      __pyx_v_kw_only = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_kw_only == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2867, __pyx_L3_error)
    } else {
      __pyx_v_kw_only = ((int)0);
    }
    if (values[6]) {
      __pyx_v_annotated = __Pyx_PyObject_IsTrue(values[6]); if (unlikely((__pyx_v_annotated == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2867, __pyx_L3_error)
    } else {
      __pyx_v_annotated = ((int)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("p_c_arg_list", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2866, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_arg_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s), __pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner, 1, "s", 0))) __PYX_ERR(0, 2866, __pyx_L1_error)
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_6p_c_arg_list(__pyx_self, __pyx_v_s, __pyx_v_ctx, __pyx_v_in_pyfunc, __pyx_v_cmethod_flag, __pyx_v_nonempty_declarators, __pyx_v_kw_only, __pyx_v_annotated);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_6p_c_arg_list(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, int __pyx_v_in_pyfunc, int __pyx_v_cmethod_flag, int __pyx_v_nonempty_declarators, int __pyx_v_kw_only, int __pyx_v_annotated) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_list __pyx_t_2;
  __Pyx_RefNannySetupContext("p_c_arg_list", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 6;
  __pyx_t_2.ctx = __pyx_v_ctx;
  __pyx_t_2.in_pyfunc = __pyx_v_in_pyfunc;
  __pyx_t_2.cmethod_flag = __pyx_v_cmethod_flag;
  __pyx_t_2.nonempty_declarators = __pyx_v_nonempty_declarators;
  __pyx_t_2.kw_only = __pyx_v_kw_only;
  __pyx_t_2.annotated = __pyx_v_annotated;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_list(__pyx_v_s, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_arg_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2882
 *     return args
 * 
 * def p_optional_ellipsis(s):             # <<<<<<<<<<<<<<
 *     if s.sy == '.':
 *         expect_ellipsis(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_optional_ellipsis(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_optional_ellipsis", 0);

  /* "Cython/Compiler/Parsing.py":2883
 * 
 * def p_optional_ellipsis(s):
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         expect_ellipsis(s)
 *         return 1
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2883, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2884
 * def p_optional_ellipsis(s):
 *     if s.sy == '.':
 *         expect_ellipsis(s)             # <<<<<<<<<<<<<<
 *         return 1
 *     else:
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_expect_ellipsis(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2884, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2885
 *     if s.sy == '.':
 *         expect_ellipsis(s)
 *         return 1             # <<<<<<<<<<<<<<
 *     else:
 *         return 0
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2883
 * 
 * def p_optional_ellipsis(s):
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         expect_ellipsis(s)
 *         return 1
 */
  }

  /* "Cython/Compiler/Parsing.py":2887
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0,
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2882
 *     return args
 * 
 * def p_optional_ellipsis(s):             # <<<<<<<<<<<<<<
 *     if s.sy == '.':
 *         expect_ellipsis(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_optional_ellipsis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2889
 *         return 0
 * 
 * def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0,             # <<<<<<<<<<<<<<
 *                  kw_only = 0, annotated = 1):
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_decl(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, PyObject *__pyx_v_in_pyfunc, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_decl *__pyx_optional_args) {
  int __pyx_v_cmethod_flag = ((int)0);
  int __pyx_v_nonempty = ((int)0);
  int __pyx_v_kw_only = ((int)0);
  int __pyx_v_annotated = ((int)1);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_not_none = NULL;
  PyObject *__pyx_v_or_none = NULL;
  PyObject *__pyx_v_default = NULL;
  PyObject *__pyx_v_annotation = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_declarator = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("p_c_arg_decl", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_cmethod_flag = __pyx_optional_args->cmethod_flag;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_nonempty = __pyx_optional_args->nonempty;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_kw_only = __pyx_optional_args->kw_only;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_annotated = __pyx_optional_args->annotated;
          }
        }
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":2891
 * def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0,
 *                  kw_only = 0, annotated = 1):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     not_none = or_none = 0
 *     default = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2892
 *                  kw_only = 0, annotated = 1):
 *     pos = s.position()
 *     not_none = or_none = 0             # <<<<<<<<<<<<<<
 *     default = None
 *     annotation = None
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_not_none = __pyx_int_0;
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_or_none = __pyx_int_0;

  /* "Cython/Compiler/Parsing.py":2893
 *     pos = s.position()
 *     not_none = or_none = 0
 *     default = None             # <<<<<<<<<<<<<<
 *     annotation = None
 *     if s.in_python_file:
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_default = Py_None;

  /* "Cython/Compiler/Parsing.py":2894
 *     not_none = or_none = 0
 *     default = None
 *     annotation = None             # <<<<<<<<<<<<<<
 *     if s.in_python_file:
 *         # empty type declaration
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_annotation = Py_None;

  /* "Cython/Compiler/Parsing.py":2895
 *     default = None
 *     annotation = None
 *     if s.in_python_file:             # <<<<<<<<<<<<<<
 *         # empty type declaration
 *         base_type = Nodes.CSimpleBaseTypeNode(pos,
 */
  __pyx_t_2 = (__pyx_v_s->in_python_file != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2897
 *     if s.in_python_file:
 *         # empty type declaration
 *         base_type = Nodes.CSimpleBaseTypeNode(pos,             # <<<<<<<<<<<<<<
 *             name = None, module_path = [],
 *             is_basic_c_type = 0, signed = 0,
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CSimpleBaseTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2897, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2897, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":2898
 *         # empty type declaration
 *         base_type = Nodes.CSimpleBaseTypeNode(pos,
 *             name = None, module_path = [],             # <<<<<<<<<<<<<<
 *             is_basic_c_type = 0, signed = 0,
 *             complex = 0, longness = 0,
 */
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, Py_None) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_module_path, __pyx_t_5) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_is_basic_c_type, __pyx_int_0) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_signed, __pyx_int_0) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_complex, __pyx_int_0) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_longness, __pyx_int_0) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2901
 *             is_basic_c_type = 0, signed = 0,
 *             complex = 0, longness = 0,
 *             is_self_arg = cmethod_flag, templates = None)             # <<<<<<<<<<<<<<
 *     else:
 *         base_type = p_c_base_type(s, cmethod_flag, nonempty = nonempty)
 */
    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_is_self_arg, __pyx_t_5) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_templates, Py_None) < 0) __PYX_ERR(0, 2898, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2897
 *     if s.in_python_file:
 *         # empty type declaration
 *         base_type = Nodes.CSimpleBaseTypeNode(pos,             # <<<<<<<<<<<<<<
 *             name = None, module_path = [],
 *             is_basic_c_type = 0, signed = 0,
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2897, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_base_type = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2895
 *     default = None
 *     annotation = None
 *     if s.in_python_file:             # <<<<<<<<<<<<<<
 *         # empty type declaration
 *         base_type = Nodes.CSimpleBaseTypeNode(pos,
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2903
 *             is_self_arg = cmethod_flag, templates = None)
 *     else:
 *         base_type = p_c_base_type(s, cmethod_flag, nonempty = nonempty)             # <<<<<<<<<<<<<<
 *     declarator = p_c_declarator(s, ctx, nonempty = nonempty)
 *     if s.sy in ('not', 'or') and not s.in_python_file:
 */
  /*else*/ {
    __pyx_t_6.__pyx_n = 2;
    __pyx_t_6.self_flag = __pyx_v_cmethod_flag;
    __pyx_t_6.nonempty = __pyx_v_nonempty;
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, &__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2903, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_base_type = __pyx_t_5;
    __pyx_t_5 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2904
 *     else:
 *         base_type = p_c_base_type(s, cmethod_flag, nonempty = nonempty)
 *     declarator = p_c_declarator(s, ctx, nonempty = nonempty)             # <<<<<<<<<<<<<<
 *     if s.sy in ('not', 'or') and not s.in_python_file:
 *         kind = s.sy
 */
  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_s));
  __Pyx_INCREF(__pyx_v_ctx);
  __Pyx_GIVEREF(__pyx_v_ctx);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_ctx);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_nonempty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nonempty, __pyx_t_1) < 0) __PYX_ERR(0, 2904, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_declarator = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2905
 *         base_type = p_c_base_type(s, cmethod_flag, nonempty = nonempty)
 *     declarator = p_c_declarator(s, ctx, nonempty = nonempty)
 *     if s.sy in ('not', 'or') and not s.in_python_file:             # <<<<<<<<<<<<<<
 *         kind = s.sy
 *         s.next()
 */
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_1 = __pyx_v_s->sy;
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_not, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2905, __pyx_L1_error)
  if (!__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_or, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2905, __pyx_L1_error)
  __pyx_t_7 = __pyx_t_8;
  __pyx_L7_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = (__pyx_t_7 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_2 = __pyx_t_8;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_8 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  __pyx_t_2 = __pyx_t_8;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2906
 *     declarator = p_c_declarator(s, ctx, nonempty = nonempty)
 *     if s.sy in ('not', 'or') and not s.in_python_file:
 *         kind = s.sy             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == 'IDENT' and s.systring == 'None':
 */
    __pyx_t_1 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_kind = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2907
 *     if s.sy in ('not', 'or') and not s.in_python_file:
 *         kind = s.sy
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT' and s.systring == 'None':
 *             s.next()
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2908
 *         kind = s.sy
 *         s.next()
 *         if s.sy == 'IDENT' and s.systring == 'None':             # <<<<<<<<<<<<<<
 *             s.next()
 *         else:
 */
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2908, __pyx_L1_error)
    if (__pyx_t_8) {
    } else {
      __pyx_t_2 = __pyx_t_8;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_None, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2908, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_8;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2909
 *         s.next()
 *         if s.sy == 'IDENT' and s.systring == 'None':
 *             s.next()             # <<<<<<<<<<<<<<
 *         else:
 *             s.error("Expected 'None'")
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2908
 *         kind = s.sy
 *         s.next()
 *         if s.sy == 'IDENT' and s.systring == 'None':             # <<<<<<<<<<<<<<
 *             s.next()
 *         else:
 */
      goto __pyx_L9;
    }

    /* "Cython/Compiler/Parsing.py":2911
 *             s.next()
 *         else:
 *             s.error("Expected 'None'")             # <<<<<<<<<<<<<<
 *         if not in_pyfunc:
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__126, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_L9:;

    /* "Cython/Compiler/Parsing.py":2912
 *         else:
 *             s.error("Expected 'None'")
 *         if not in_pyfunc:             # <<<<<<<<<<<<<<
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 *         or_none = kind == 'or'
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_in_pyfunc); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2912, __pyx_L1_error)
    __pyx_t_8 = ((!__pyx_t_2) != 0);
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2913
 *             s.error("Expected 'None'")
 *         if not in_pyfunc:
 *             error(pos, "'%s None' only allowed in Python functions" % kind)             # <<<<<<<<<<<<<<
 *         or_none = kind == 'or'
 *         not_none = kind == 'not'
 */
      __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_s_None_only_allowed_in_Python_f, __pyx_v_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_4 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
      __pyx_t_9 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_9 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_t_1};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2913, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_t_1};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2913, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      {
        __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2913, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2913, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2912
 *         else:
 *             s.error("Expected 'None'")
 *         if not in_pyfunc:             # <<<<<<<<<<<<<<
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 *         or_none = kind == 'or'
 */
    }

    /* "Cython/Compiler/Parsing.py":2914
 *         if not in_pyfunc:
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 *         or_none = kind == 'or'             # <<<<<<<<<<<<<<
 *         not_none = kind == 'not'
 *     if annotated and s.sy == ':':
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_kind, __pyx_n_u_or, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2914, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_or_none, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2915
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 *         or_none = kind == 'or'
 *         not_none = kind == 'not'             # <<<<<<<<<<<<<<
 *     if annotated and s.sy == ':':
 *         s.next()
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_kind, __pyx_n_u_not, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2915, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_not_none, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2905
 *         base_type = p_c_base_type(s, cmethod_flag, nonempty = nonempty)
 *     declarator = p_c_declarator(s, ctx, nonempty = nonempty)
 *     if s.sy in ('not', 'or') and not s.in_python_file:             # <<<<<<<<<<<<<<
 *         kind = s.sy
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":2916
 *         or_none = kind == 'or'
 *         not_none = kind == 'not'
 *     if annotated and s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         annotation = p_test(s)
 */
  __pyx_t_2 = (__pyx_v_annotated != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_8 = __pyx_t_2;
    goto __pyx_L14_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2916, __pyx_L1_error)
  __pyx_t_8 = __pyx_t_2;
  __pyx_L14_bool_binop_done:;
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":2917
 *         not_none = kind == 'not'
 *     if annotated and s.sy == ':':
 *         s.next()             # <<<<<<<<<<<<<<
 *         annotation = p_test(s)
 *     if s.sy == '=':
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2918
 *     if annotated and s.sy == ':':
 *         s.next()
 *         annotation = p_test(s)             # <<<<<<<<<<<<<<
 *     if s.sy == '=':
 *         s.next()
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2918, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_annotation, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2916
 *         or_none = kind == 'or'
 *         not_none = kind == 'not'
 *     if annotated and s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         annotation = p_test(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":2919
 *         s.next()
 *         annotation = p_test(s)
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if 'pxd' in ctx.level:
 */
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2919, __pyx_L1_error)
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":2920
 *         annotation = p_test(s)
 *     if s.sy == '=':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if 'pxd' in ctx.level:
 *             if s.sy not in ['*', '?']:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2920, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2921
 *     if s.sy == '=':
 *         s.next()
 *         if 'pxd' in ctx.level:             # <<<<<<<<<<<<<<
 *             if s.sy not in ['*', '?']:
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_pxd, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = (__pyx_t_8 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2922
 *         s.next()
 *         if 'pxd' in ctx.level:
 *             if s.sy not in ['*', '?']:             # <<<<<<<<<<<<<<
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 *             default = ExprNodes.BoolNode(1)
 */
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_3 = __pyx_v_s->sy;
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__6, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2922, __pyx_L1_error)
      if (__pyx_t_8) {
      } else {
        __pyx_t_2 = __pyx_t_8;
        goto __pyx_L19_bool_binop_done;
      }
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__28, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2922, __pyx_L1_error)
      __pyx_t_2 = __pyx_t_8;
      __pyx_L19_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_8 = (__pyx_t_2 != 0);
      if (__pyx_t_8) {

        /* "Cython/Compiler/Parsing.py":2923
 *         if 'pxd' in ctx.level:
 *             if s.sy not in ['*', '?']:
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")             # <<<<<<<<<<<<<<
 *             default = ExprNodes.BoolNode(1)
 *             s.next()
 */
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_4 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_10 = NULL;
        __pyx_t_9 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_pos, __pyx_kp_u_default_values_cannot_be_specifi};
          __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2923, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_GOTREF(__pyx_t_3);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_pos, __pyx_kp_u_default_values_cannot_be_specifi};
          __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2923, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_GOTREF(__pyx_t_3);
        } else
        #endif
        {
          __pyx_t_1 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2923, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (__pyx_t_10) {
            __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL;
          }
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_9, __pyx_v_pos);
          __Pyx_INCREF(__pyx_kp_u_default_values_cannot_be_specifi);
          __Pyx_GIVEREF(__pyx_kp_u_default_values_cannot_be_specifi);
          PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_9, __pyx_kp_u_default_values_cannot_be_specifi);
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2923, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":2922
 *         s.next()
 *         if 'pxd' in ctx.level:
 *             if s.sy not in ['*', '?']:             # <<<<<<<<<<<<<<
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 *             default = ExprNodes.BoolNode(1)
 */
      }

      /* "Cython/Compiler/Parsing.py":2924
 *             if s.sy not in ['*', '?']:
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 *             default = ExprNodes.BoolNode(1)             # <<<<<<<<<<<<<<
 *             s.next()
 *         else:
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2924, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__127, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2924, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF_SET(__pyx_v_default, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2925
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 *             default = ExprNodes.BoolNode(1)
 *             s.next()             # <<<<<<<<<<<<<<
 *         else:
 *             default = p_test(s)
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2921
 *     if s.sy == '=':
 *         s.next()
 *         if 'pxd' in ctx.level:             # <<<<<<<<<<<<<<
 *             if s.sy not in ['*', '?']:
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 */
      goto __pyx_L17;
    }

    /* "Cython/Compiler/Parsing.py":2927
 *             s.next()
 *         else:
 *             default = p_test(s)             # <<<<<<<<<<<<<<
 *     return Nodes.CArgDeclNode(pos,
 *         base_type = base_type,
 */
    /*else*/ {
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2927, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_default, __pyx_t_4);
      __pyx_t_4 = 0;
    }
    __pyx_L17:;

    /* "Cython/Compiler/Parsing.py":2919
 *         s.next()
 *         annotation = p_test(s)
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if 'pxd' in ctx.level:
 */
  }

  /* "Cython/Compiler/Parsing.py":2928
 *         else:
 *             default = p_test(s)
 *     return Nodes.CArgDeclNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CArgDeclNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2929
 *             default = p_test(s)
 *     return Nodes.CArgDeclNode(pos,
 *         base_type = base_type,             # <<<<<<<<<<<<<<
 *         declarator = declarator,
 *         not_none = not_none,
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2930
 *     return Nodes.CArgDeclNode(pos,
 *         base_type = base_type,
 *         declarator = declarator,             # <<<<<<<<<<<<<<
 *         not_none = not_none,
 *         or_none = or_none,
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2931
 *         base_type = base_type,
 *         declarator = declarator,
 *         not_none = not_none,             # <<<<<<<<<<<<<<
 *         or_none = or_none,
 *         default = default,
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_not_none, __pyx_v_not_none) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2932
 *         declarator = declarator,
 *         not_none = not_none,
 *         or_none = or_none,             # <<<<<<<<<<<<<<
 *         default = default,
 *         annotation = annotation,
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_or_none, __pyx_v_or_none) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2933
 *         not_none = not_none,
 *         or_none = or_none,
 *         default = default,             # <<<<<<<<<<<<<<
 *         annotation = annotation,
 *         kw_only = kw_only)
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_default, __pyx_v_default) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2934
 *         or_none = or_none,
 *         default = default,
 *         annotation = annotation,             # <<<<<<<<<<<<<<
 *         kw_only = kw_only)
 * 
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_annotation, __pyx_v_annotation) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2935
 *         default = default,
 *         annotation = annotation,
 *         kw_only = kw_only)             # <<<<<<<<<<<<<<
 * 
 * def p_api(s):
 */
  __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_v_kw_only); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_kw_only, __pyx_t_10) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":2928
 *         else:
 *             default = p_test(s)
 *     return Nodes.CArgDeclNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2889
 *         return 0
 * 
 * def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0,             # <<<<<<<<<<<<<<
 *                  kw_only = 0, annotated = 1):
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_arg_decl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_not_none);
  __Pyx_XDECREF(__pyx_v_or_none);
  __Pyx_XDECREF(__pyx_v_default);
  __Pyx_XDECREF(__pyx_v_annotation);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2937
 *         kw_only = kw_only)
 * 
 * def p_api(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'api':
 *         s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_api(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_api", 0);

  /* "Cython/Compiler/Parsing.py":2938
 * 
 * def p_api(s):
 *     if s.sy == 'IDENT' and s.systring == 'api':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return 1
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2938, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_api, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2938, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2939
 * def p_api(s):
 *     if s.sy == 'IDENT' and s.systring == 'api':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return 1
 *     else:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2940
 *     if s.sy == 'IDENT' and s.systring == 'api':
 *         s.next()
 *         return 1             # <<<<<<<<<<<<<<
 *     else:
 *         return 0
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2938
 * 
 * def p_api(s):
 *     if s.sy == 'IDENT' and s.systring == 'api':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return 1
 */
  }

  /* "Cython/Compiler/Parsing.py":2942
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_cdef_statement(s, ctx):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2937
 *         kw_only = kw_only)
 * 
 * def p_api(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'api':
 *         s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_api", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2944
 *         return 0
 * 
 * def p_cdef_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     ctx.visibility = p_visibility(s, ctx.visibility)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  __Pyx_RefNannySetupContext("p_cdef_statement", 0);

  /* "Cython/Compiler/Parsing.py":2945
 * 
 * def p_cdef_statement(s, ctx):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     ctx.visibility = p_visibility(s, ctx.visibility)
 *     ctx.api = ctx.api or p_api(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2946
 * def p_cdef_statement(s, ctx):
 *     pos = s.position()
 *     ctx.visibility = p_visibility(s, ctx.visibility)             # <<<<<<<<<<<<<<
 *     ctx.api = ctx.api or p_api(s)
 *     if ctx.api:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_visibility(__pyx_v_s, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility, __pyx_t_2) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2947
 *     pos = s.position()
 *     ctx.visibility = p_visibility(s, ctx.visibility)
 *     ctx.api = ctx.api or p_api(s)             # <<<<<<<<<<<<<<
 *     if ctx.api:
 *         if ctx.visibility not in ('private', 'public'):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2947, __pyx_L1_error)
  if (!__pyx_t_3) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_api(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_L3_bool_binop_done:;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_api, __pyx_t_2) < 0) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2948
 *     ctx.visibility = p_visibility(s, ctx.visibility)
 *     ctx.api = ctx.api or p_api(s)
 *     if ctx.api:             # <<<<<<<<<<<<<<
 *         if ctx.visibility not in ('private', 'public'):
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2948, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2949
 *     ctx.api = ctx.api or p_api(s)
 *     if ctx.api:
 *         if ctx.visibility not in ('private', 'public'):             # <<<<<<<<<<<<<<
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 *     if (ctx.visibility == 'extern') and s.sy == 'from':
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_private, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2949, __pyx_L1_error)
    if (__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_public, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2949, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_4;
    __pyx_L7_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2950
 *     if ctx.api:
 *         if ctx.visibility not in ('private', 'public'):
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)             # <<<<<<<<<<<<<<
 *     if (ctx.visibility == 'extern') and s.sy == 'from':
 *         return p_cdef_extern_block(s, pos, ctx)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2950, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_Cannot_combine_api_with_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2950, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_t_5};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2950, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_t_5};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2950, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2950, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_5);
        __pyx_t_5 = 0;
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2950, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2949
 *     ctx.api = ctx.api or p_api(s)
 *     if ctx.api:
 *         if ctx.visibility not in ('private', 'public'):             # <<<<<<<<<<<<<<
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 *     if (ctx.visibility == 'extern') and s.sy == 'from':
 */
    }

    /* "Cython/Compiler/Parsing.py":2948
 *     ctx.visibility = p_visibility(s, ctx.visibility)
 *     ctx.api = ctx.api or p_api(s)
 *     if ctx.api:             # <<<<<<<<<<<<<<
 *         if ctx.visibility not in ('private', 'public'):
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 */
  }

  /* "Cython/Compiler/Parsing.py":2951
 *         if ctx.visibility not in ('private', 'public'):
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 *     if (ctx.visibility == 'extern') and s.sy == 'from':             # <<<<<<<<<<<<<<
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif s.sy == 'import':
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_4 = __pyx_t_3;
    goto __pyx_L10_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_3;
  __pyx_L10_bool_binop_done:;
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2952
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 *     if (ctx.visibility == 'extern') and s.sy == 'from':
 *         return p_cdef_extern_block(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'import':
 *         s.next()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cdef_extern_block(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2952, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2951
 *         if ctx.visibility not in ('private', 'public'):
 *             error(pos, "Cannot combine 'api' with '%s'" % ctx.visibility)
 *     if (ctx.visibility == 'extern') and s.sy == 'from':             # <<<<<<<<<<<<<<
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif s.sy == 'import':
 */
  }

  /* "Cython/Compiler/Parsing.py":2953
 *     if (ctx.visibility == 'extern') and s.sy == 'from':
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif s.sy == 'import':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_cdef_extern_block(s, pos, ctx)
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2953, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2954
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif s.sy == 'import':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif p_nogil(s):
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2955
 *     elif s.sy == 'import':
 *         s.next()
 *         return p_cdef_extern_block(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif p_nogil(s):
 *         ctx.nogil = 1
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cdef_extern_block(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2953
 *     if (ctx.visibility == 'extern') and s.sy == 'from':
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif s.sy == 'import':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_cdef_extern_block(s, pos, ctx)
 */
  }

  /* "Cython/Compiler/Parsing.py":2956
 *         s.next()
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif p_nogil(s):             # <<<<<<<<<<<<<<
 *         ctx.nogil = 1
 *         if ctx.overridable:
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2957
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif p_nogil(s):
 *         ctx.nogil = 1             # <<<<<<<<<<<<<<
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_nogil, __pyx_int_1) < 0) __PYX_ERR(0, 2957, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":2958
 *     elif p_nogil(s):
 *         ctx.nogil = 1
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2959
 *         ctx.nogil = 1
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == ':':
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_cdef_blocks_cannot_be_declared_c};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2959, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_cdef_blocks_cannot_be_declared_c};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2959, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2959, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
        __Pyx_GIVEREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_u_cdef_blocks_cannot_be_declared_c);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2959, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2958
 *     elif p_nogil(s):
 *         ctx.nogil = 1
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 */
    }

    /* "Cython/Compiler/Parsing.py":2960
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == ':':
 *         if ctx.overridable:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cdef_block(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2956
 *         s.next()
 *         return p_cdef_extern_block(s, pos, ctx)
 *     elif p_nogil(s):             # <<<<<<<<<<<<<<
 *         ctx.nogil = 1
 *         if ctx.overridable:
 */
  }

  /* "Cython/Compiler/Parsing.py":2961
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == ':':             # <<<<<<<<<<<<<<
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2961, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2962
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == ':':
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2962, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2963
 *     elif s.sy == ':':
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == 'class':
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_cdef_blocks_cannot_be_declared_c};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2963, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_cdef_blocks_cannot_be_declared_c};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2963, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
        __Pyx_GIVEREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_cdef_blocks_cannot_be_declared_c);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2962
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == ':':
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 */
    }

    /* "Cython/Compiler/Parsing.py":2964
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'class':
 *         if ctx.level not in ('module', 'module_pxd'):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cdef_block(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2961
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == ':':             # <<<<<<<<<<<<<<
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")
 */
  }

  /* "Cython/Compiler/Parsing.py":2965
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == 'class':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "Extension type definition not allowed here")
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2965, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2966
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == 'class':
 *         if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *             error(pos, "Extension type definition not allowed here")
 *         if ctx.overridable:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2966, __pyx_L1_error)
    if (__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L15_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __pyx_t_4 = __pyx_t_3;
    __pyx_L15_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = (__pyx_t_4 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2967
 *     elif s.sy == 'class':
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "Extension type definition not allowed here")             # <<<<<<<<<<<<<<
 *         if ctx.overridable:
 *             error(pos, "Extension types cannot be declared cpdef")
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Extension_type_definition_not_al};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2967, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Extension_type_definition_not_al};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2967, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2967, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Extension_type_definition_not_al);
        __Pyx_GIVEREF(__pyx_kp_u_Extension_type_definition_not_al);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_u_Extension_type_definition_not_al);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2967, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2966
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == 'class':
 *         if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *             error(pos, "Extension type definition not allowed here")
 *         if ctx.overridable:
 */
    }

    /* "Cython/Compiler/Parsing.py":2968
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "Extension type definition not allowed here")
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "Extension types cannot be declared cpdef")
 *         return p_c_class_definition(s, pos, ctx)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2969
 *             error(pos, "Extension type definition not allowed here")
 *         if ctx.overridable:
 *             error(pos, "Extension types cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Extension_types_cannot_be_declar};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2969, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Extension_types_cannot_be_declar};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2969, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2969, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Extension_types_cannot_be_declar);
        __Pyx_GIVEREF(__pyx_kp_u_Extension_types_cannot_be_declar);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Extension_types_cannot_be_declar);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2969, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2968
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "Extension type definition not allowed here")
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "Extension types cannot be declared cpdef")
 *         return p_c_class_definition(s, pos, ctx)
 */
    }

    /* "Cython/Compiler/Parsing.py":2970
 *         if ctx.overridable:
 *             error(pos, "Extension types cannot be declared cpdef")
 *         return p_c_class_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, pos, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_class_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2965
 *             error(pos, "cdef blocks cannot be declared cpdef")
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == 'class':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "Extension type definition not allowed here")
 */
  }

  /* "Cython/Compiler/Parsing.py":2971
 *             error(pos, "Extension types cannot be declared cpdef")
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':             # <<<<<<<<<<<<<<
 *         return p_cpp_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2971, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_cppclass, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2971, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2972
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if ctx.level not in ('module', 'module_pxd'):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2971
 *             error(pos, "Extension types cannot be declared cpdef")
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':             # <<<<<<<<<<<<<<
 *         return p_cpp_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 */
  }

  /* "Cython/Compiler/Parsing.py":2973
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "C struct/union/enum definition not allowed here")
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2973, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L20_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2973, __pyx_L1_error)
  __pyx_t_9 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_9;
  __pyx_L20_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2974
 *         return p_cpp_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2974, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 2974, __pyx_L1_error)
    if (__pyx_t_9) {
    } else {
      __pyx_t_3 = __pyx_t_9;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 2974, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_9;
    __pyx_L23_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = (__pyx_t_3 != 0);
    if (__pyx_t_9) {

      /* "Cython/Compiler/Parsing.py":2975
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "C struct/union/enum definition not allowed here")             # <<<<<<<<<<<<<<
 *         if ctx.overridable:
 *             if s.systring != 'enum':
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_C_struct_union_enum_definition_n};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2975, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_C_struct_union_enum_definition_n};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2975, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_2);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_C_struct_union_enum_definition_n);
        __Pyx_GIVEREF(__pyx_kp_u_C_struct_union_enum_definition_n);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_u_C_struct_union_enum_definition_n);
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2974
 *         return p_cpp_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:
 */
    }

    /* "Cython/Compiler/Parsing.py":2976
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             if s.systring != 'enum':
 *                 error(pos, "C struct/union cannot be declared cpdef")
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 2976, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_9) {

      /* "Cython/Compiler/Parsing.py":2977
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:
 *             if s.systring != 'enum':             # <<<<<<<<<<<<<<
 *                 error(pos, "C struct/union cannot be declared cpdef")
 *         return p_struct_enum(s, pos, ctx)
 */
      __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_enum, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 2977, __pyx_L1_error)
      if (__pyx_t_9) {

        /* "Cython/Compiler/Parsing.py":2978
 *         if ctx.overridable:
 *             if s.systring != 'enum':
 *                 error(pos, "C struct/union cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 */
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_C_struct_union_cannot_be_declare};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2978, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_C_struct_union_cannot_be_declare};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2978, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2978, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
          __Pyx_INCREF(__pyx_kp_u_C_struct_union_cannot_be_declare);
          __Pyx_GIVEREF(__pyx_kp_u_C_struct_union_cannot_be_declare);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_C_struct_union_cannot_be_declare);
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2978, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2977
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:
 *             if s.systring != 'enum':             # <<<<<<<<<<<<<<
 *                 error(pos, "C struct/union cannot be declared cpdef")
 *         return p_struct_enum(s, pos, ctx)
 */
      }

      /* "Cython/Compiler/Parsing.py":2976
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             if s.systring != 'enum':
 *                 error(pos, "C struct/union cannot be declared cpdef")
 */
    }

    /* "Cython/Compiler/Parsing.py":2979
 *             if s.systring != 'enum':
 *                 error(pos, "C struct/union cannot be declared cpdef")
 *         return p_struct_enum(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 *         return p_fused_definition(s, pos, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_struct_enum(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2973
 *     elif s.sy == 'IDENT' and s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "C struct/union/enum definition not allowed here")
 */
  }

  /* "Cython/Compiler/Parsing.py":2980
 *                 error(pos, "C struct/union cannot be declared cpdef")
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':             # <<<<<<<<<<<<<<
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2980, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_9 = __pyx_t_3;
    goto __pyx_L27_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_fused, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2980, __pyx_L1_error)
  __pyx_t_9 = __pyx_t_3;
  __pyx_L27_bool_binop_done:;
  if (__pyx_t_9) {

    /* "Cython/Compiler/Parsing.py":2981
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 *         return p_fused_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     else:
 *         return p_c_func_or_var_declaration(s, pos, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_fused_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2981, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":2980
 *                 error(pos, "C struct/union cannot be declared cpdef")
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':             # <<<<<<<<<<<<<<
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":2983
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 *         return p_c_func_or_var_declaration(s, pos, ctx)             # <<<<<<<<<<<<<<
 * 
 * def p_cdef_block(s, ctx):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2944
 *         return 0
 * 
 * def p_cdef_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     ctx.visibility = p_visibility(s, ctx.visibility)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cdef_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2985
 *         return p_c_func_or_var_declaration(s, pos, ctx)
 * 
 * def p_cdef_block(s, ctx):             # <<<<<<<<<<<<<<
 *     return p_suite(s, ctx(cdef_flag = 1))
 * 
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_block(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite __pyx_t_3;
  __Pyx_RefNannySetupContext("p_cdef_block", 0);

  /* "Cython/Compiler/Parsing.py":2986
 * 
 * def p_cdef_block(s, ctx):
 *     return p_suite(s, ctx(cdef_flag = 1))             # <<<<<<<<<<<<<<
 * 
 * def p_cdef_extern_block(s, pos, ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cdef_flag, __pyx_int_1) < 0) __PYX_ERR(0, 2986, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.ctx = __pyx_t_2;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2985
 *         return p_c_func_or_var_declaration(s, pos, ctx)
 * 
 * def p_cdef_block(s, ctx):             # <<<<<<<<<<<<<<
 *     return p_suite(s, ctx(cdef_flag = 1))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cdef_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2988
 *     return p_suite(s, ctx(cdef_flag = 1))
 * 
 * def p_cdef_extern_block(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     if ctx.overridable:
 *         error(pos, "cdef extern blocks cannot be declared cpdef")
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_extern_block(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_include_file = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal __pyx_t_7;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite __pyx_t_8;
  __Pyx_RefNannySetupContext("p_cdef_extern_block", 0);
  __Pyx_INCREF(__pyx_v_ctx);

  /* "Cython/Compiler/Parsing.py":2989
 * 
 * def p_cdef_extern_block(s, pos, ctx):
 *     if ctx.overridable:             # <<<<<<<<<<<<<<
 *         error(pos, "cdef extern blocks cannot be declared cpdef")
 *     include_file = None
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2989, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2990
 * def p_cdef_extern_block(s, pos, ctx):
 *     if ctx.overridable:
 *         error(pos, "cdef extern blocks cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *     include_file = None
 *     s.expect('from')
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_3 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_pos, __pyx_kp_u_cdef_extern_blocks_cannot_be_dec};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2990, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_pos, __pyx_kp_u_cdef_extern_blocks_cannot_be_dec};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2990, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2990, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_cdef_extern_blocks_cannot_be_dec);
      __Pyx_GIVEREF(__pyx_kp_u_cdef_extern_blocks_cannot_be_dec);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_kp_u_cdef_extern_blocks_cannot_be_dec);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2990, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2989
 * 
 * def p_cdef_extern_block(s, pos, ctx):
 *     if ctx.overridable:             # <<<<<<<<<<<<<<
 *         error(pos, "cdef extern blocks cannot be declared cpdef")
 *     include_file = None
 */
  }

  /* "Cython/Compiler/Parsing.py":2991
 *     if ctx.overridable:
 *         error(pos, "cdef extern blocks cannot be declared cpdef")
 *     include_file = None             # <<<<<<<<<<<<<<
 *     s.expect('from')
 *     if s.sy == '*':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_include_file = Py_None;

  /* "Cython/Compiler/Parsing.py":2992
 *         error(pos, "cdef extern blocks cannot be declared cpdef")
 *     include_file = None
 *     s.expect('from')             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         s.next()
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_from, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 2992, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2993
 *     include_file = None
 *     s.expect('from')
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         s.next()
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2993, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2994
 *     s.expect('from')
 *     if s.sy == '*':
 *         s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         include_file = p_string_literal(s, 'u')[2]
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2993
 *     include_file = None
 *     s.expect('from')
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         s.next()
 *     else:
 */
    goto __pyx_L4;
  }

  /* "Cython/Compiler/Parsing.py":2996
 *         s.next()
 *     else:
 *         include_file = p_string_literal(s, 'u')[2]             # <<<<<<<<<<<<<<
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')
 *     if s.systring == "namespace":
 */
  /*else*/ {
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.kind_override = __pyx_n_u_u;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_include_file, __pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":2997
 *     else:
 *         include_file = p_string_literal(s, 'u')[2]
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')             # <<<<<<<<<<<<<<
 *     if s.systring == "namespace":
 *         s.next()
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cdef_flag, __pyx_int_1) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_visibility, __pyx_n_u_extern) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_ctx, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2998
 *         include_file = p_string_literal(s, 'u')[2]
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')
 *     if s.systring == "namespace":             # <<<<<<<<<<<<<<
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_namespace, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2998, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2999
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')
 *     if s.systring == "namespace":
 *         s.next()             # <<<<<<<<<<<<<<
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 *     if p_nogil(s):
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2999, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3000
 *     if s.systring == "namespace":
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]             # <<<<<<<<<<<<<<
 *     if p_nogil(s):
 *         ctx.nogil = 1
 */
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.kind_override = __pyx_n_u_u;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace, __pyx_t_3) < 0) __PYX_ERR(0, 3000, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2998
 *         include_file = p_string_literal(s, 'u')[2]
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')
 *     if s.systring == "namespace":             # <<<<<<<<<<<<<<
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 */
  }

  /* "Cython/Compiler/Parsing.py":3001
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 *     if p_nogil(s):             # <<<<<<<<<<<<<<
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 */
  __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3001, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3002
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 *     if p_nogil(s):
 *         ctx.nogil = 1             # <<<<<<<<<<<<<<
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_nogil, __pyx_int_1) < 0) __PYX_ERR(0, 3002, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3001
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 *     if p_nogil(s):             # <<<<<<<<<<<<<<
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 */
  }

  /* "Cython/Compiler/Parsing.py":3003
 *     if p_nogil(s):
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)             # <<<<<<<<<<<<<<
 *     return Nodes.CDefExternNode(pos,
 *         include_file = include_file,
 */
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.ctx = __pyx_v_ctx;
  __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_body = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":3004
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,             # <<<<<<<<<<<<<<
 *         include_file = include_file,
 *         body = body,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CDefExternNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":3005
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,
 *         include_file = include_file,             # <<<<<<<<<<<<<<
 *         body = body,
 *         namespace = ctx.namespace)
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_include_file, __pyx_v_include_file) < 0) __PYX_ERR(0, 3005, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3006
 *     return Nodes.CDefExternNode(pos,
 *         include_file = include_file,
 *         body = body,             # <<<<<<<<<<<<<<
 *         namespace = ctx.namespace)
 * 
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 3005, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3007
 *         include_file = include_file,
 *         body = body,
 *         namespace = ctx.namespace)             # <<<<<<<<<<<<<<
 * 
 * def p_c_enum_definition(s, pos, ctx):
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_namespace, __pyx_t_4) < 0) __PYX_ERR(0, 3005, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":3004
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,             # <<<<<<<<<<<<<<
 *         include_file = include_file,
 *         body = body,
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2988
 *     return p_suite(s, ctx(cdef_flag = 1))
 * 
 * def p_cdef_extern_block(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     if ctx.overridable:
 *         error(pos, "cdef extern blocks cannot be declared cpdef")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cdef_extern_block", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_include_file);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3009
 *         namespace = ctx.namespace)
 * 
 * def p_c_enum_definition(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == ident 'enum'
 *     s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_cname = NULL;
  PyObject *__pyx_v_items = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_RefNannySetupContext("p_c_enum_definition", 0);

  /* "Cython/Compiler/Parsing.py":3011
 * def p_c_enum_definition(s, pos, ctx):
 *     # s.sy == ident 'enum'
 *     s.next()             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT':
 *         name = s.systring
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3012
 *     # s.sy == ident 'enum'
 *     s.next()
 *     if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3012, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3013
 *     s.next()
 *     if s.sy == 'IDENT':
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         cname = p_opt_cname(s)
 */
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3014
 *     if s.sy == 'IDENT':
 *         name = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         cname = p_opt_cname(s)
 *         if cname is None and ctx.namespace is not None:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3014, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3015
 *         name = s.systring
 *         s.next()
 *         cname = p_opt_cname(s)             # <<<<<<<<<<<<<<
 *         if cname is None and ctx.namespace is not None:
 *             cname = ctx.namespace + "::" + name
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3015, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_cname = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3016
 *         s.next()
 *         cname = p_opt_cname(s)
 *         if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *             cname = ctx.namespace + "::" + name
 *     else:
 */
    __pyx_t_3 = (__pyx_v_cname == Py_None);
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = (__pyx_t_1 != Py_None);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3017
 *         cname = p_opt_cname(s)
 *         if cname is None and ctx.namespace is not None:
 *             cname = ctx.namespace + "::" + name             # <<<<<<<<<<<<<<
 *     else:
 *         name = None
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__120); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_cname, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3016
 *         s.next()
 *         cname = p_opt_cname(s)
 *         if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *             cname = ctx.namespace + "::" + name
 *     else:
 */
    }

    /* "Cython/Compiler/Parsing.py":3012
 *     # s.sy == ident 'enum'
 *     s.next()
 *     if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = s.systring
 *         s.next()
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":3019
 *             cname = ctx.namespace + "::" + name
 *     else:
 *         name = None             # <<<<<<<<<<<<<<
 *         cname = None
 *     items = None
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_name = Py_None;

    /* "Cython/Compiler/Parsing.py":3020
 *     else:
 *         name = None
 *         cname = None             # <<<<<<<<<<<<<<
 *     items = None
 *     s.expect(':')
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_cname = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3021
 *         name = None
 *         cname = None
 *     items = None             # <<<<<<<<<<<<<<
 *     s.expect(':')
 *     items = []
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_items = Py_None;

  /* "Cython/Compiler/Parsing.py":3022
 *         cname = None
 *     items = None
 *     s.expect(':')             # <<<<<<<<<<<<<<
 *     items = []
 *     if s.sy != 'NEWLINE':
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__3, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3022, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3023
 *     items = None
 *     s.expect(':')
 *     items = []             # <<<<<<<<<<<<<<
 *     if s.sy != 'NEWLINE':
 *         p_c_enum_line(s, ctx, items)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_items, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3024
 *     s.expect(':')
 *     items = []
 *     if s.sy != 'NEWLINE':             # <<<<<<<<<<<<<<
 *         p_c_enum_line(s, ctx, items)
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_NEWLINE, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3024, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3025
 *     items = []
 *     if s.sy != 'NEWLINE':
 *         p_c_enum_line(s, ctx, items)             # <<<<<<<<<<<<<<
 *     else:
 *         s.next() # 'NEWLINE'
 */
    if (!(likely(PyList_CheckExact(__pyx_v_items))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_items)->tp_name), 0))) __PYX_ERR(0, 3025, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_line(__pyx_v_s, __pyx_v_ctx, ((PyObject*)__pyx_v_items)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3024
 *     s.expect(':')
 *     items = []
 *     if s.sy != 'NEWLINE':             # <<<<<<<<<<<<<<
 *         p_c_enum_line(s, ctx, items)
 *     else:
 */
    goto __pyx_L7;
  }

  /* "Cython/Compiler/Parsing.py":3027
 *         p_c_enum_line(s, ctx, items)
 *     else:
 *         s.next() # 'NEWLINE'             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         while s.sy not in ('DEDENT', 'EOF'):
 */
  /*else*/ {
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3028
 *     else:
 *         s.next() # 'NEWLINE'
 *         s.expect_indent()             # <<<<<<<<<<<<<<
 *         while s.sy not in ('DEDENT', 'EOF'):
 *             p_c_enum_line(s, ctx, items)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_indent(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3029
 *         s.next() # 'NEWLINE'
 *         s.expect_indent()
 *         while s.sy not in ('DEDENT', 'EOF'):             # <<<<<<<<<<<<<<
 *             p_c_enum_line(s, ctx, items)
 *         s.expect_dedent()
 */
    while (1) {
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_1 = __pyx_v_s->sy;
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3029, __pyx_L1_error)
      if (__pyx_t_3) {
      } else {
        __pyx_t_2 = __pyx_t_3;
        goto __pyx_L10_bool_binop_done;
      }
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3029, __pyx_L1_error)
      __pyx_t_2 = __pyx_t_3;
      __pyx_L10_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (!__pyx_t_3) break;

      /* "Cython/Compiler/Parsing.py":3030
 *         s.expect_indent()
 *         while s.sy not in ('DEDENT', 'EOF'):
 *             p_c_enum_line(s, ctx, items)             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *     return Nodes.CEnumDefNode(
 */
      if (!(likely(PyList_CheckExact(__pyx_v_items))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_items)->tp_name), 0))) __PYX_ERR(0, 3030, __pyx_L1_error)
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_line(__pyx_v_s, __pyx_v_ctx, ((PyObject*)__pyx_v_items)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3030, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3031
 *         while s.sy not in ('DEDENT', 'EOF'):
 *             p_c_enum_line(s, ctx, items)
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *     return Nodes.CEnumDefNode(
 *         pos, name = name, cname = cname, items = items,
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":3032
 *             p_c_enum_line(s, ctx, items)
 *         s.expect_dedent()
 *     return Nodes.CEnumDefNode(             # <<<<<<<<<<<<<<
 *         pos, name = name, cname = cname, items = items,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CEnumDefNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":3033
 *         s.expect_dedent()
 *     return Nodes.CEnumDefNode(
 *         pos, name = name, cname = cname, items = items,             # <<<<<<<<<<<<<<
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         create_wrapper = ctx.overridable,
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, __pyx_v_cname) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_items, __pyx_v_items) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3034
 *     return Nodes.CEnumDefNode(
 *         pos, name = name, cname = cname, items = items,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *         create_wrapper = ctx.overridable,
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_typedef_flag); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_typedef_flag, __pyx_t_7) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_t_7) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":3035
 *         pos, name = name, cname = cname, items = items,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         create_wrapper = ctx.overridable,             # <<<<<<<<<<<<<<
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_create_wrapper, __pyx_t_7) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":3036
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         create_wrapper = ctx.overridable,
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')             # <<<<<<<<<<<<<<
 * 
 * def p_c_enum_line(s, ctx, items):
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_t_7) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in_pxd, __pyx_t_8) < 0) __PYX_ERR(0, 3033, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":3032
 *             p_c_enum_line(s, ctx, items)
 *         s.expect_dedent()
 *     return Nodes.CEnumDefNode(             # <<<<<<<<<<<<<<
 *         pos, name = name, cname = cname, items = items,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 */
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3009
 *         namespace = ctx.namespace)
 * 
 * def p_c_enum_definition(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == ident 'enum'
 *     s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_enum_definition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_cname);
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3038
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')
 * 
 * def p_c_enum_line(s, ctx, items):             # <<<<<<<<<<<<<<
 *     if s.sy != 'pass':
 *         p_c_enum_item(s, ctx, items)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_line(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, PyObject *__pyx_v_items) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_4;
  __Pyx_RefNannySetupContext("p_c_enum_line", 0);

  /* "Cython/Compiler/Parsing.py":3039
 * 
 * def p_c_enum_line(s, ctx, items):
 *     if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *         p_c_enum_item(s, ctx, items)
 *         while s.sy == ',':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3039, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3040
 * def p_c_enum_line(s, ctx, items):
 *     if s.sy != 'pass':
 *         p_c_enum_item(s, ctx, items)             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_item(__pyx_v_s, __pyx_v_ctx, __pyx_v_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3041
 *     if s.sy != 'pass':
 *         p_c_enum_item(s, ctx, items)
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):
 */
    while (1) {
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3041, __pyx_L1_error)
      if (!__pyx_t_1) break;

      /* "Cython/Compiler/Parsing.py":3042
 *         p_c_enum_item(s, ctx, items)
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy in ('NEWLINE', 'EOF'):
 *                 break
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3042, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3043
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *                 break
 *             p_c_enum_item(s, ctx, items)
 */
      __Pyx_INCREF(__pyx_v_s->sy);
      __pyx_t_2 = __pyx_v_s->sy;
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3043, __pyx_L1_error)
      if (!__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L7_bool_binop_done;
      }
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3043, __pyx_L1_error)
      __pyx_t_1 = __pyx_t_3;
      __pyx_L7_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_3 = (__pyx_t_1 != 0);
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":3044
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):
 *                 break             # <<<<<<<<<<<<<<
 *             p_c_enum_item(s, ctx, items)
 *     else:
 */
        goto __pyx_L5_break;

        /* "Cython/Compiler/Parsing.py":3043
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy in ('NEWLINE', 'EOF'):             # <<<<<<<<<<<<<<
 *                 break
 *             p_c_enum_item(s, ctx, items)
 */
      }

      /* "Cython/Compiler/Parsing.py":3045
 *             if s.sy in ('NEWLINE', 'EOF'):
 *                 break
 *             p_c_enum_item(s, ctx, items)             # <<<<<<<<<<<<<<
 *     else:
 *         s.next()
 */
      __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_item(__pyx_v_s, __pyx_v_ctx, __pyx_v_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L5_break:;

    /* "Cython/Compiler/Parsing.py":3039
 * 
 * def p_c_enum_line(s, ctx, items):
 *     if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *         p_c_enum_item(s, ctx, items)
 *         while s.sy == ',':
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":3047
 *             p_c_enum_item(s, ctx, items)
 *     else:
 *         s.next()             # <<<<<<<<<<<<<<
 *     s.expect_newline("Syntax error in enum item list")
 * 
 */
  /*else*/ {
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3048
 *     else:
 *         s.next()
 *     s.expect_newline("Syntax error in enum item list")             # <<<<<<<<<<<<<<
 * 
 * def p_c_enum_item(s, ctx, items):
 */
  __pyx_t_4.__pyx_n = 1;
  __pyx_t_4.message = __pyx_kp_u_Syntax_error_in_enum_item_list;
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3038
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')
 * 
 * def p_c_enum_line(s, ctx, items):             # <<<<<<<<<<<<<<
 *     if s.sy != 'pass':
 *         p_c_enum_item(s, ctx, items)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_enum_line", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3050
 *     s.expect_newline("Syntax error in enum item list")
 * 
 * def p_c_enum_item(s, ctx, items):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     name = p_ident(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_item(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx, PyObject *__pyx_v_items) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_cname = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("p_c_enum_item", 0);

  /* "Cython/Compiler/Parsing.py":3051
 * 
 * def p_c_enum_item(s, ctx, items):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3052
 * def p_c_enum_item(s, ctx, items):
 *     pos = s.position()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3053
 *     pos = s.position()
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)             # <<<<<<<<<<<<<<
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + name
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cname = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3054
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *         cname = ctx.namespace + "::" + name
 *     value = None
 */
  __pyx_t_3 = (__pyx_v_cname == Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__pyx_t_1 != Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3055
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + name             # <<<<<<<<<<<<<<
 *     value = None
 *     if s.sy == '=':
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3055, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__120); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3055, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3055, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_cname, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3054
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *         cname = ctx.namespace + "::" + name
 *     value = None
 */
  }

  /* "Cython/Compiler/Parsing.py":3056
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + name
 *     value = None             # <<<<<<<<<<<<<<
 *     if s.sy == '=':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_value = Py_None;

  /* "Cython/Compiler/Parsing.py":3057
 *         cname = ctx.namespace + "::" + name
 *     value = None
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         value = p_test(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3057, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3058
 *     value = None
 *     if s.sy == '=':
 *         s.next()             # <<<<<<<<<<<<<<
 *         value = p_test(s)
 *     items.append(Nodes.CEnumDefItemNode(pos,
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3059
 *     if s.sy == '=':
 *         s.next()
 *         value = p_test(s)             # <<<<<<<<<<<<<<
 *     items.append(Nodes.CEnumDefItemNode(pos,
 *         name = name, cname = cname, value = value))
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3059, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3057
 *         cname = ctx.namespace + "::" + name
 *     value = None
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         value = p_test(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":3060
 *         s.next()
 *         value = p_test(s)
 *     items.append(Nodes.CEnumDefItemNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, cname = cname, value = value))
 * 
 */
  if (unlikely(__pyx_v_items == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
    __PYX_ERR(0, 3060, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CEnumDefItemNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":3061
 *         value = p_test(s)
 *     items.append(Nodes.CEnumDefItemNode(pos,
 *         name = name, cname = cname, value = value))             # <<<<<<<<<<<<<<
 * 
 * def p_c_struct_or_union_definition(s, pos, ctx):
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3061, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, __pyx_v_cname) < 0) __PYX_ERR(0, 3061, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 3061, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3060
 *         s.next()
 *         value = p_test(s)
 *     items.append(Nodes.CEnumDefItemNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, cname = cname, value = value))
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 3060, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":3050
 *     s.expect_newline("Syntax error in enum item list")
 * 
 * def p_c_enum_item(s, ctx, items):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     name = p_ident(s)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_enum_item", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_cname);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3063
 *         name = name, cname = cname, value = value))
 * 
 * def p_c_struct_or_union_definition(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     packed = False
 *     if s.systring == 'packed':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_struct_or_union_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  int __pyx_v_packed;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_cname = NULL;
  PyObject *__pyx_v_attributes = NULL;
  PyObject *__pyx_v_body_ctx = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("p_c_struct_or_union_definition", 0);

  /* "Cython/Compiler/Parsing.py":3064
 * 
 * def p_c_struct_or_union_definition(s, pos, ctx):
 *     packed = False             # <<<<<<<<<<<<<<
 *     if s.systring == 'packed':
 *         packed = True
 */
  __pyx_v_packed = 0;

  /* "Cython/Compiler/Parsing.py":3065
 * def p_c_struct_or_union_definition(s, pos, ctx):
 *     packed = False
 *     if s.systring == 'packed':             # <<<<<<<<<<<<<<
 *         packed = True
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_packed, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3065, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3066
 *     packed = False
 *     if s.systring == 'packed':
 *         packed = True             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy != 'IDENT' or s.systring != 'struct':
 */
    __pyx_v_packed = 1;

    /* "Cython/Compiler/Parsing.py":3067
 *     if s.systring == 'packed':
 *         packed = True
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy != 'IDENT' or s.systring != 'struct':
 *             s.expected('struct')
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3068
 *         packed = True
 *         s.next()
 *         if s.sy != 'IDENT' or s.systring != 'struct':             # <<<<<<<<<<<<<<
 *             s.expected('struct')
 *     # s.sy == ident 'struct' or 'union'
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3068, __pyx_L1_error)
    if (!__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_struct, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3068, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_3;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3069
 *         s.next()
 *         if s.sy != 'IDENT' or s.systring != 'struct':
 *             s.expected('struct')             # <<<<<<<<<<<<<<
 *     # s.sy == ident 'struct' or 'union'
 *     kind = s.systring
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expected(__pyx_v_s, __pyx_n_u_struct, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3069, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3068
 *         packed = True
 *         s.next()
 *         if s.sy != 'IDENT' or s.systring != 'struct':             # <<<<<<<<<<<<<<
 *             s.expected('struct')
 *     # s.sy == ident 'struct' or 'union'
 */
    }

    /* "Cython/Compiler/Parsing.py":3065
 * def p_c_struct_or_union_definition(s, pos, ctx):
 *     packed = False
 *     if s.systring == 'packed':             # <<<<<<<<<<<<<<
 *         packed = True
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":3071
 *             s.expected('struct')
 *     # s.sy == ident 'struct' or 'union'
 *     kind = s.systring             # <<<<<<<<<<<<<<
 *     s.next()
 *     name = p_ident(s)
 */
  __pyx_t_2 = __pyx_v_s->systring;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_kind = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3072
 *     # s.sy == ident 'struct' or 'union'
 *     kind = s.systring
 *     s.next()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3073
 *     kind = s.systring
 *     s.next()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3074
 *     s.next()
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)             # <<<<<<<<<<<<<<
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + name
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_cname = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3075
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *         cname = ctx.namespace + "::" + name
 *     attributes = None
 */
  __pyx_t_3 = (__pyx_v_cname == Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_1 = __pyx_t_4;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = (__pyx_t_2 != Py_None);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3076
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + name             # <<<<<<<<<<<<<<
 *     attributes = None
 *     if s.sy == ':':
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_kp_u__120); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_5, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_cname, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3075
 *     name = p_ident(s)
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *         cname = ctx.namespace + "::" + name
 *     attributes = None
 */
  }

  /* "Cython/Compiler/Parsing.py":3077
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + name
 *     attributes = None             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_attributes = Py_None;

  /* "Cython/Compiler/Parsing.py":3078
 *         cname = ctx.namespace + "::" + name
 *     attributes = None
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('NEWLINE')
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3078, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3079
 *     attributes = None
 *     if s.sy == ':':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect('NEWLINE')
 *         s.expect_indent()
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3079, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3080
 *     if s.sy == ':':
 *         s.next()
 *         s.expect('NEWLINE')             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         attributes = []
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_NEWLINE, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 3080, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3081
 *         s.next()
 *         s.expect('NEWLINE')
 *         s.expect_indent()             # <<<<<<<<<<<<<<
 *         attributes = []
 *         body_ctx = Ctx()
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_indent(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3082
 *         s.expect('NEWLINE')
 *         s.expect_indent()
 *         attributes = []             # <<<<<<<<<<<<<<
 *         body_ctx = Ctx()
 *         while s.sy != 'DEDENT':
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_attributes, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3083
 *         s.expect_indent()
 *         attributes = []
 *         body_ctx = Ctx()             # <<<<<<<<<<<<<<
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':
 */
    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3083, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (__pyx_t_6) {
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3083, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else {
      __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3083, __pyx_L1_error)
    }
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_body_ctx = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3084
 *         attributes = []
 *         body_ctx = Ctx()
 *         while s.sy != 'DEDENT':             # <<<<<<<<<<<<<<
 *             if s.sy != 'pass':
 *                 attributes.append(
 */
    while (1) {
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3084, __pyx_L1_error)
      if (!__pyx_t_1) break;

      /* "Cython/Compiler/Parsing.py":3085
 *         body_ctx = Ctx()
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *                 attributes.append(
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 */
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3085, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":3087
 *             if s.sy != 'pass':
 *                 attributes.append(
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))             # <<<<<<<<<<<<<<
 *             else:
 *                 s.next()
 */
        __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3087, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(__pyx_v_s, __pyx_t_2, __pyx_v_body_ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3087, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":3086
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':
 *                 attributes.append(             # <<<<<<<<<<<<<<
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 *             else:
 */
        __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_attributes, __pyx_t_5); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 3086, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":3085
 *         body_ctx = Ctx()
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *                 attributes.append(
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 */
        goto __pyx_L13;
      }

      /* "Cython/Compiler/Parsing.py":3089
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 *             else:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()
 */
      /*else*/ {
        __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3089, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":3090
 *             else:
 *                 s.next()
 *                 s.expect_newline("Expected a newline")             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *     else:
 */
        __pyx_t_8.__pyx_n = 1;
        __pyx_t_8.message = __pyx_kp_u_Expected_a_newline;
        __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3090, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __pyx_L13:;
    }

    /* "Cython/Compiler/Parsing.py":3091
 *                 s.next()
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *     else:
 *         s.expect_newline("Syntax error in struct or union definition")
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3078
 *         cname = ctx.namespace + "::" + name
 *     attributes = None
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('NEWLINE')
 */
    goto __pyx_L10;
  }

  /* "Cython/Compiler/Parsing.py":3093
 *         s.expect_dedent()
 *     else:
 *         s.expect_newline("Syntax error in struct or union definition")             # <<<<<<<<<<<<<<
 *     return Nodes.CStructOrUnionDefNode(pos,
 *         name = name, cname = cname, kind = kind, attributes = attributes,
 */
  /*else*/ {
    __pyx_t_8.__pyx_n = 1;
    __pyx_t_8.message = __pyx_kp_u_Syntax_error_in_struct_or_union;
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3093, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_L10:;

  /* "Cython/Compiler/Parsing.py":3094
 *     else:
 *         s.expect_newline("Syntax error in struct or union definition")
 *     return Nodes.CStructOrUnionDefNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, cname = cname, kind = kind, attributes = attributes,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CStructOrUnionDefNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":3095
 *         s.expect_newline("Syntax error in struct or union definition")
 *     return Nodes.CStructOrUnionDefNode(pos,
 *         name = name, cname = cname, kind = kind, attributes = attributes,             # <<<<<<<<<<<<<<
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd', packed = packed)
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3095, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, __pyx_v_cname) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_kind, __pyx_v_kind) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_attributes, __pyx_v_attributes) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3096
 *     return Nodes.CStructOrUnionDefNode(pos,
 *         name = name, cname = cname, kind = kind, attributes = attributes,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd', packed = packed)
 * 
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_typedef_flag); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_typedef_flag, __pyx_t_9) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_t_9) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":3097
 *         name = name, cname = cname, kind = kind, attributes = attributes,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd', packed = packed)             # <<<<<<<<<<<<<<
 * 
 * def p_fused_definition(s, pos, ctx):
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_t_9) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyObject_RichCompare(__pyx_t_9, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in_pxd, __pyx_t_10) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_v_packed); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_packed, __pyx_t_10) < 0) __PYX_ERR(0, 3095, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":3094
 *     else:
 *         s.expect_newline("Syntax error in struct or union definition")
 *     return Nodes.CStructOrUnionDefNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, cname = cname, kind = kind, attributes = attributes,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 */
  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3063
 *         name = name, cname = cname, value = value))
 * 
 * def p_c_struct_or_union_definition(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     packed = False
 *     if s.systring == 'packed':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_struct_or_union_definition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_cname);
  __Pyx_XDECREF(__pyx_v_attributes);
  __Pyx_XDECREF(__pyx_v_body_ctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3099
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd', packed = packed)
 * 
 * def p_fused_definition(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     """
 *     c(type)def fused my_fused_type:
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_fused_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_types = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("p_fused_definition", 0);

  /* "Cython/Compiler/Parsing.py":3106
 *     # s.systring == 'fused'
 * 
 *     if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *         error(pos, "Fused type definition not allowed here")
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3106, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3106, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3107
 * 
 *     if ctx.level not in ('module', 'module_pxd'):
 *         error(pos, "Fused type definition not allowed here")             # <<<<<<<<<<<<<<
 * 
 *     s.next()
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_4 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Fused_type_definition_not_allowe};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3107, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Fused_type_definition_not_allowe};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3107, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Fused_type_definition_not_allowe);
      __Pyx_GIVEREF(__pyx_kp_u_Fused_type_definition_not_allowe);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_kp_u_Fused_type_definition_not_allowe);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3106
 *     # s.systring == 'fused'
 * 
 *     if ctx.level not in ('module', 'module_pxd'):             # <<<<<<<<<<<<<<
 *         error(pos, "Fused type definition not allowed here")
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":3109
 *         error(pos, "Fused type definition not allowed here")
 * 
 *     s.next()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3110
 * 
 *     s.next()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 * 
 *     s.expect(":")
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3112
 *     name = p_ident(s)
 * 
 *     s.expect(":")             # <<<<<<<<<<<<<<
 *     s.expect_newline()
 *     s.expect_indent()
 */
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__3, NULL); if (unlikely(__pyx_t_3 == -2)) __PYX_ERR(0, 3112, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3113
 * 
 *     s.expect(":")
 *     s.expect_newline()             # <<<<<<<<<<<<<<
 *     s.expect_indent()
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3114
 *     s.expect(":")
 *     s.expect_newline()
 *     s.expect_indent()             # <<<<<<<<<<<<<<
 * 
 *     types = []
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_indent(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3116
 *     s.expect_indent()
 * 
 *     types = []             # <<<<<<<<<<<<<<
 *     while s.sy != 'DEDENT':
 *         if s.sy != 'pass':
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3117
 * 
 *     types = []
 *     while s.sy != 'DEDENT':             # <<<<<<<<<<<<<<
 *         if s.sy != 'pass':
 *             #types.append(p_c_declarator(s))
 */
  while (1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3117, __pyx_L1_error)
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":3118
 *     types = []
 *     while s.sy != 'DEDENT':
 *         if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *             #types.append(p_c_declarator(s))
 *             types.append(p_c_base_type(s)) #, nonempty=1))
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3118, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":3120
 *         if s.sy != 'pass':
 *             #types.append(p_c_declarator(s))
 *             types.append(p_c_base_type(s)) #, nonempty=1))             # <<<<<<<<<<<<<<
 *         else:
 *             s.next()
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_types, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3118
 *     types = []
 *     while s.sy != 'DEDENT':
 *         if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *             #types.append(p_c_declarator(s))
 *             types.append(p_c_base_type(s)) #, nonempty=1))
 */
      goto __pyx_L8;
    }

    /* "Cython/Compiler/Parsing.py":3122
 *             types.append(p_c_base_type(s)) #, nonempty=1))
 *         else:
 *             s.next()             # <<<<<<<<<<<<<<
 * 
 *         s.expect_newline()
 */
    /*else*/ {
      __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3122, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":3124
 *             s.next()
 * 
 *         s.expect_newline()             # <<<<<<<<<<<<<<
 * 
 *     s.expect_dedent()
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":3126
 *         s.expect_newline()
 * 
 *     s.expect_dedent()             # <<<<<<<<<<<<<<
 * 
 *     if not types:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3128
 *     s.expect_dedent()
 * 
 *     if not types:             # <<<<<<<<<<<<<<
 *         error(pos, "Need at least one type")
 * 
 */
  __pyx_t_3 = (__pyx_v_types != Py_None) && (PyList_GET_SIZE(__pyx_v_types) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3129
 * 
 *     if not types:
 *         error(pos, "Need at least one type")             # <<<<<<<<<<<<<<
 * 
 *     return Nodes.FusedTypeNode(pos, name=name, types=types)
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_4 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_7 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_pos, __pyx_kp_u_Need_at_least_one_type};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_pos, __pyx_kp_u_Need_at_least_one_type};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Need_at_least_one_type);
      __Pyx_GIVEREF(__pyx_kp_u_Need_at_least_one_type);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_kp_u_Need_at_least_one_type);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3128
 *     s.expect_dedent()
 * 
 *     if not types:             # <<<<<<<<<<<<<<
 *         error(pos, "Need at least one type")
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":3131
 *         error(pos, "Need at least one type")
 * 
 *     return Nodes.FusedTypeNode(pos, name=name, types=types)             # <<<<<<<<<<<<<<
 * 
 * def p_struct_enum(s, pos, ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_FusedTypeNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3131, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_types, __pyx_v_types) < 0) __PYX_ERR(0, 3131, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3099
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd', packed = packed)
 * 
 * def p_fused_definition(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     """
 *     c(type)def fused my_fused_type:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_fused_definition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_types);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3133
 *     return Nodes.FusedTypeNode(pos, name=name, types=types)
 * 
 * def p_struct_enum(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     if s.systring == 'enum':
 *         return p_c_enum_definition(s, pos, ctx)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_struct_enum(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_struct_enum", 0);

  /* "Cython/Compiler/Parsing.py":3134
 * 
 * def p_struct_enum(s, pos, ctx):
 *     if s.systring == 'enum':             # <<<<<<<<<<<<<<
 *         return p_c_enum_definition(s, pos, ctx)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_enum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3134, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3135
 * def p_struct_enum(s, pos, ctx):
 *     if s.systring == 'enum':
 *         return p_c_enum_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     else:
 *         return p_c_struct_or_union_definition(s, pos, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3134
 * 
 * def p_struct_enum(s, pos, ctx):
 *     if s.systring == 'enum':             # <<<<<<<<<<<<<<
 *         return p_c_enum_definition(s, pos, ctx)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":3137
 *         return p_c_enum_definition(s, pos, ctx)
 *     else:
 *         return p_c_struct_or_union_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 * 
 * def p_visibility(s, prev_visibility):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_struct_or_union_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":3133
 *     return Nodes.FusedTypeNode(pos, name=name, types=types)
 * 
 * def p_struct_enum(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     if s.systring == 'enum':
 *         return p_c_enum_definition(s, pos, ctx)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_struct_enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3139
 *         return p_c_struct_or_union_definition(s, pos, ctx)
 * 
 * def p_visibility(s, prev_visibility):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     visibility = prev_visibility
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_visibility(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_prev_visibility) {
  CYTHON_UNUSED PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_visibility = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_visibility", 0);

  /* "Cython/Compiler/Parsing.py":3140
 * 
 * def p_visibility(s, prev_visibility):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     visibility = prev_visibility
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3141
 * def p_visibility(s, prev_visibility):
 *     pos = s.position()
 *     visibility = prev_visibility             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):
 *         visibility = s.systring
 */
  __Pyx_INCREF(__pyx_v_prev_visibility);
  __pyx_v_visibility = __pyx_v_prev_visibility;

  /* "Cython/Compiler/Parsing.py":3142
 *     pos = s.position()
 *     visibility = prev_visibility
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):             # <<<<<<<<<<<<<<
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3142, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_s->systring);
  __pyx_t_1 = __pyx_v_s->systring;
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3142, __pyx_L1_error)
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_public, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3142, __pyx_L1_error)
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_readonly, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3142, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L6_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3143
 *     visibility = prev_visibility
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):
 *         visibility = s.systring             # <<<<<<<<<<<<<<
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 *             s.error("Conflicting visibility options '%s' and '%s'"
 */
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_visibility, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3144
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:             # <<<<<<<<<<<<<<
 *             s.error("Conflicting visibility options '%s' and '%s'"
 *                 % (prev_visibility, visibility), fatal=False)
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_prev_visibility, __pyx_n_u_private, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3144, __pyx_L1_error)
    if (__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_visibility, __pyx_v_prev_visibility, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3144, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __pyx_t_4;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3145
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 *             s.error("Conflicting visibility options '%s' and '%s'"             # <<<<<<<<<<<<<<
 *                 % (prev_visibility, visibility), fatal=False)
 *         s.next()
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);

      /* "Cython/Compiler/Parsing.py":3146
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 *             s.error("Conflicting visibility options '%s' and '%s'"
 *                 % (prev_visibility, visibility), fatal=False)             # <<<<<<<<<<<<<<
 *         s.next()
 *     return visibility
 */
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3146, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_prev_visibility);
      __Pyx_GIVEREF(__pyx_v_prev_visibility);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_prev_visibility);
      __Pyx_INCREF(__pyx_v_visibility);
      __Pyx_GIVEREF(__pyx_v_visibility);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_visibility);
      __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_Conflicting_visibility_options_s, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3146, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":3145
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 *             s.error("Conflicting visibility options '%s' and '%s'"             # <<<<<<<<<<<<<<
 *                 % (prev_visibility, visibility), fatal=False)
 *         s.next()
 */
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3146
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 *             s.error("Conflicting visibility options '%s' and '%s'"
 *                 % (prev_visibility, visibility), fatal=False)             # <<<<<<<<<<<<<<
 *         s.next()
 *     return visibility
 */
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3146, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 3146, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":3145
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 *             s.error("Conflicting visibility options '%s' and '%s'"             # <<<<<<<<<<<<<<
 *                 % (prev_visibility, visibility), fatal=False)
 *         s.next()
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":3144
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:             # <<<<<<<<<<<<<<
 *             s.error("Conflicting visibility options '%s' and '%s'"
 *                 % (prev_visibility, visibility), fatal=False)
 */
    }

    /* "Cython/Compiler/Parsing.py":3147
 *             s.error("Conflicting visibility options '%s' and '%s'"
 *                 % (prev_visibility, visibility), fatal=False)
 *         s.next()             # <<<<<<<<<<<<<<
 *     return visibility
 * 
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":3142
 *     pos = s.position()
 *     visibility = prev_visibility
 *     if s.sy == 'IDENT' and s.systring in ('extern', 'public', 'readonly'):             # <<<<<<<<<<<<<<
 *         visibility = s.systring
 *         if prev_visibility != 'private' and visibility != prev_visibility:
 */
  }

  /* "Cython/Compiler/Parsing.py":3148
 *                 % (prev_visibility, visibility), fatal=False)
 *         s.next()
 *     return visibility             # <<<<<<<<<<<<<<
 * 
 * def p_c_modifiers(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_visibility);
  __pyx_r = __pyx_v_visibility;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3139
 *         return p_c_struct_or_union_definition(s, pos, ctx)
 * 
 * def p_visibility(s, prev_visibility):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     visibility = prev_visibility
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_visibility", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_visibility);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3150
 *     return visibility
 * 
 * def p_c_modifiers(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring in ('inline',):
 *         modifier = s.systring
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_modifiers(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_modifier = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_c_modifiers", 0);

  /* "Cython/Compiler/Parsing.py":3151
 * 
 * def p_c_modifiers(s):
 *     if s.sy == 'IDENT' and s.systring in ('inline',):             # <<<<<<<<<<<<<<
 *         modifier = s.systring
 *         s.next()
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3151, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_s->systring);
  __pyx_t_3 = __pyx_v_s->systring;
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_inline, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3152
 * def p_c_modifiers(s):
 *     if s.sy == 'IDENT' and s.systring in ('inline',):
 *         modifier = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         return [modifier] + p_c_modifiers(s)
 */
    __pyx_t_3 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_modifier = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3153
 *     if s.sy == 'IDENT' and s.systring in ('inline',):
 *         modifier = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         return [modifier] + p_c_modifiers(s)
 *     return []
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3154
 *         modifier = s.systring
 *         s.next()
 *         return [modifier] + p_c_modifiers(s)             # <<<<<<<<<<<<<<
 *     return []
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_modifier);
    __Pyx_GIVEREF(__pyx_v_modifier);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_modifier);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_modifiers(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3151
 * 
 * def p_c_modifiers(s):
 *     if s.sy == 'IDENT' and s.systring in ('inline',):             # <<<<<<<<<<<<<<
 *         modifier = s.systring
 *         s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":3155
 *         s.next()
 *         return [modifier] + p_c_modifiers(s)
 *     return []             # <<<<<<<<<<<<<<
 * 
 * def p_c_func_or_var_declaration(s, pos, ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3150
 *     return visibility
 * 
 * def p_c_modifiers(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring in ('inline',):
 *         modifier = s.systring
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_modifiers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_modifier);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3157
 *     return []
 * 
 * def p_c_func_or_var_declaration(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     cmethod_flag = ctx.level in ('c_class', 'c_class_pxd')
 *     modifiers = p_c_modifiers(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  int __pyx_v_cmethod_flag;
  PyObject *__pyx_v_modifiers = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_declarator = NULL;
  long __pyx_v_is_const_method;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_suite = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_declarators = NULL;
  Py_ssize_t __pyx_v_doc_line;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_9;
  __Pyx_RefNannySetupContext("p_c_func_or_var_declaration", 0);

  /* "Cython/Compiler/Parsing.py":3158
 * 
 * def p_c_func_or_var_declaration(s, pos, ctx):
 *     cmethod_flag = ctx.level in ('c_class', 'c_class_pxd')             # <<<<<<<<<<<<<<
 *     modifiers = p_c_modifiers(s)
 *     base_type = p_c_base_type(s, nonempty = 1, templates = ctx.templates)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3158, __pyx_L1_error)
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3158, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L3_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cmethod_flag = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":3159
 * def p_c_func_or_var_declaration(s, pos, ctx):
 *     cmethod_flag = ctx.level in ('c_class', 'c_class_pxd')
 *     modifiers = p_c_modifiers(s)             # <<<<<<<<<<<<<<
 *     base_type = p_c_base_type(s, nonempty = 1, templates = ctx.templates)
 *     declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_modifiers(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_modifiers = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3160
 *     cmethod_flag = ctx.level in ('c_class', 'c_class_pxd')
 *     modifiers = p_c_modifiers(s)
 *     base_type = p_c_base_type(s, nonempty = 1, templates = ctx.templates)             # <<<<<<<<<<<<<<
 *     declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 *                                 assignable = 1, nonempty = 1)
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_s));
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_nonempty, __pyx_int_1) < 0) __PYX_ERR(0, 3160, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_templates); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_templates, __pyx_t_6) < 0) __PYX_ERR(0, 3160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_base_type = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":3161
 *     modifiers = p_c_modifiers(s)
 *     base_type = p_c_base_type(s, nonempty = 1, templates = ctx.templates)
 *     declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,             # <<<<<<<<<<<<<<
 *                                 assignable = 1, nonempty = 1)
 *     declarator.overridable = ctx.overridable
 */
  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_s));
  __Pyx_INCREF(__pyx_v_ctx);
  __Pyx_GIVEREF(__pyx_v_ctx);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_ctx);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_cmethod_flag, __pyx_t_1) < 0) __PYX_ERR(0, 3161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_assignable, __pyx_int_1) < 0) __PYX_ERR(0, 3161, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_nonempty, __pyx_int_1) < 0) __PYX_ERR(0, 3161, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_declarator = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3163
 *     declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 *                                 assignable = 1, nonempty = 1)
 *     declarator.overridable = ctx.overridable             # <<<<<<<<<<<<<<
 *     if s.sy == 'IDENT' and s.systring == 'const' and ctx.level == 'cpp_class':
 *         s.next()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_declarator, __pyx_n_s_overridable, __pyx_t_1) < 0) __PYX_ERR(0, 3163, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3164
 *                                 assignable = 1, nonempty = 1)
 *     declarator.overridable = ctx.overridable
 *     if s.sy == 'IDENT' and s.systring == 'const' and ctx.level == 'cpp_class':             # <<<<<<<<<<<<<<
 *         s.next()
 *         is_const_method = 1
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3164, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_const, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3164, __pyx_L1_error)
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cpp_class, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3165
 *     declarator.overridable = ctx.overridable
 *     if s.sy == 'IDENT' and s.systring == 'const' and ctx.level == 'cpp_class':
 *         s.next()             # <<<<<<<<<<<<<<
 *         is_const_method = 1
 *     else:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3166
 *     if s.sy == 'IDENT' and s.systring == 'const' and ctx.level == 'cpp_class':
 *         s.next()
 *         is_const_method = 1             # <<<<<<<<<<<<<<
 *     else:
 *         is_const_method = 0
 */
    __pyx_v_is_const_method = 1;

    /* "Cython/Compiler/Parsing.py":3164
 *                                 assignable = 1, nonempty = 1)
 *     declarator.overridable = ctx.overridable
 *     if s.sy == 'IDENT' and s.systring == 'const' and ctx.level == 'cpp_class':             # <<<<<<<<<<<<<<
 *         s.next()
 *         is_const_method = 1
 */
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":3168
 *         is_const_method = 1
 *     else:
 *         is_const_method = 0             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:
 */
  /*else*/ {
    __pyx_v_is_const_method = 0;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":3169
 *     else:
 *         is_const_method = 0
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:
 *             s.error("C function definition not allowed here")
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3169, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3170
 *         is_const_method = 0
 *     if s.sy == ':':
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:             # <<<<<<<<<<<<<<
 *             s.error("C function definition not allowed here")
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3170, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_3 = __pyx_t_7;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3170, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_3 = __pyx_t_7;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3170, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_3 = __pyx_t_7;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3170, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_3 = __pyx_t_7;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cpp_class, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3170, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_7;
    __pyx_L13_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__pyx_t_3 != 0);
    if (__pyx_t_7) {
    } else {
      __pyx_t_2 = __pyx_t_7;
      goto __pyx_L11_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_templates); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3170, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = ((!__pyx_t_7) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L11_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3171
 *     if s.sy == ':':
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:
 *             s.error("C function definition not allowed here")             # <<<<<<<<<<<<<<
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 *         result = Nodes.CFuncDefNode(pos,
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3171, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__128, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3171, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3170
 *         is_const_method = 0
 *     if s.sy == ':':
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:             # <<<<<<<<<<<<<<
 *             s.error("C function definition not allowed here")
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 */
    }

    /* "Cython/Compiler/Parsing.py":3172
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:
 *             s.error("C function definition not allowed here")
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))             # <<<<<<<<<<<<<<
 *         result = Nodes.CFuncDefNode(pos,
 *             visibility = ctx.visibility,
 */
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_n_u_function) < 0) __PYX_ERR(0, 3172, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(__pyx_v_s, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(__pyx_t_1 != Py_None)) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3172, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      #else
      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3172, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3172, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3172, __pyx_L1_error)
    }
    __pyx_v_doc = __pyx_t_5;
    __pyx_t_5 = 0;
    __pyx_v_suite = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":3173
 *             s.error("C function definition not allowed here")
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 *         result = Nodes.CFuncDefNode(pos,             # <<<<<<<<<<<<<<
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CFuncDefNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":3174
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 *         result = Nodes.CFuncDefNode(pos,
 *             visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *             base_type = base_type,
 *             declarator = declarator,
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_visibility, __pyx_t_6) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3175
 *         result = Nodes.CFuncDefNode(pos,
 *             visibility = ctx.visibility,
 *             base_type = base_type,             # <<<<<<<<<<<<<<
 *             declarator = declarator,
 *             body = suite,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3176
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 *             declarator = declarator,             # <<<<<<<<<<<<<<
 *             body = suite,
 *             doc = doc,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3177
 *             base_type = base_type,
 *             declarator = declarator,
 *             body = suite,             # <<<<<<<<<<<<<<
 *             doc = doc,
 *             modifiers = modifiers,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_body, __pyx_v_suite) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3178
 *             declarator = declarator,
 *             body = suite,
 *             doc = doc,             # <<<<<<<<<<<<<<
 *             modifiers = modifiers,
 *             api = ctx.api,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3179
 *             body = suite,
 *             doc = doc,
 *             modifiers = modifiers,             # <<<<<<<<<<<<<<
 *             api = ctx.api,
 *             overridable = ctx.overridable,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_modifiers, __pyx_v_modifiers) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3180
 *             doc = doc,
 *             modifiers = modifiers,
 *             api = ctx.api,             # <<<<<<<<<<<<<<
 *             overridable = ctx.overridable,
 *             is_const_method = is_const_method)
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_api, __pyx_t_6) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3181
 *             modifiers = modifiers,
 *             api = ctx.api,
 *             overridable = ctx.overridable,             # <<<<<<<<<<<<<<
 *             is_const_method = is_const_method)
 *     else:
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_overridable, __pyx_t_6) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3182
 *             api = ctx.api,
 *             overridable = ctx.overridable,
 *             is_const_method = is_const_method)             # <<<<<<<<<<<<<<
 *     else:
 *         #if api:
 */
    __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_is_const_method); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_is_const_method, __pyx_t_6) < 0) __PYX_ERR(0, 3174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3173
 *             s.error("C function definition not allowed here")
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 *         result = Nodes.CFuncDefNode(pos,             # <<<<<<<<<<<<<<
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3169
 *     else:
 *         is_const_method = 0
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:
 *             s.error("C function definition not allowed here")
 */
    goto __pyx_L9;
  }

  /* "Cython/Compiler/Parsing.py":3186
 *         #if api:
 *         #    s.error("'api' not allowed with variable declaration")
 *         if is_const_method:             # <<<<<<<<<<<<<<
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_is_const_method != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3187
 *         #    s.error("'api' not allowed with variable declaration")
 *         if is_const_method:
 *             declarator.is_const_method = is_const_method             # <<<<<<<<<<<<<<
 *         declarators = [declarator]
 *         while s.sy == ',':
 */
      __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_is_const_method); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3187, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_declarator, __pyx_n_s_is_const_method, __pyx_t_6) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3186
 *         #if api:
 *         #    s.error("'api' not allowed with variable declaration")
 *         if is_const_method:             # <<<<<<<<<<<<<<
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]
 */
    }

    /* "Cython/Compiler/Parsing.py":3188
 *         if is_const_method:
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_declarator);
    __Pyx_GIVEREF(__pyx_v_declarator);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_declarator);
    __pyx_v_declarators = ((PyObject*)__pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3189
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == 'NEWLINE':
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3189, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":3190
 *         declarators = [declarator]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == 'NEWLINE':
 *                 break
 */
      __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3190, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3191
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *                 break
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3191, __pyx_L1_error)
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":3192
 *             s.next()
 *             if s.sy == 'NEWLINE':
 *                 break             # <<<<<<<<<<<<<<
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 *                                         assignable = 1, nonempty = 1)
 */
        goto __pyx_L20_break;

        /* "Cython/Compiler/Parsing.py":3191
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *                 break
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 */
      }

      /* "Cython/Compiler/Parsing.py":3193
 *             if s.sy == 'NEWLINE':
 *                 break
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,             # <<<<<<<<<<<<<<
 *                                         assignable = 1, nonempty = 1)
 *             declarators.append(declarator)
 */
      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_s));
      __Pyx_INCREF(__pyx_v_ctx);
      __Pyx_GIVEREF(__pyx_v_ctx);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_ctx);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_cmethod_flag, __pyx_t_1) < 0) __PYX_ERR(0, 3193, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_assignable, __pyx_int_1) < 0) __PYX_ERR(0, 3193, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_nonempty, __pyx_int_1) < 0) __PYX_ERR(0, 3193, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF_SET(__pyx_v_declarator, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3195
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 *                                         assignable = 1, nonempty = 1)
 *             declarators.append(declarator)             # <<<<<<<<<<<<<<
 *         doc_line = s.start_line + 1
 *         s.expect_newline("Syntax error in C variable declaration", ignore_semicolon=True)
 */
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_declarators, __pyx_v_declarator); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 3195, __pyx_L1_error)
    }
    __pyx_L20_break:;

    /* "Cython/Compiler/Parsing.py":3196
 *                                         assignable = 1, nonempty = 1)
 *             declarators.append(declarator)
 *         doc_line = s.start_line + 1             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in C variable declaration", ignore_semicolon=True)
 *         if ctx.level in ('c_class', 'c_class_pxd') and s.start_line == doc_line:
 */
    __pyx_v_doc_line = (__pyx_v_s->__pyx_base.start_line + 1);

    /* "Cython/Compiler/Parsing.py":3197
 *             declarators.append(declarator)
 *         doc_line = s.start_line + 1
 *         s.expect_newline("Syntax error in C variable declaration", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *         if ctx.level in ('c_class', 'c_class_pxd') and s.start_line == doc_line:
 *             doc = p_doc_string(s)
 */
    __pyx_t_9.__pyx_n = 2;
    __pyx_t_9.message = __pyx_kp_u_Syntax_error_in_C_variable_decla;
    __pyx_t_9.ignore_semicolon = 1;
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3198
 *         doc_line = s.start_line + 1
 *         s.expect_newline("Syntax error in C variable declaration", ignore_semicolon=True)
 *         if ctx.level in ('c_class', 'c_class_pxd') and s.start_line == doc_line:             # <<<<<<<<<<<<<<
 *             doc = p_doc_string(s)
 *         else:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3198, __pyx_L1_error)
    if (!__pyx_t_7) {
    } else {
      __pyx_t_3 = __pyx_t_7;
      goto __pyx_L25_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3198, __pyx_L1_error)
    __pyx_t_3 = __pyx_t_7;
    __pyx_L25_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__pyx_t_3 != 0);
    if (__pyx_t_7) {
    } else {
      __pyx_t_2 = __pyx_t_7;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_7 = ((__pyx_v_s->__pyx_base.start_line == __pyx_v_doc_line) != 0);
    __pyx_t_2 = __pyx_t_7;
    __pyx_L23_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3199
 *         s.expect_newline("Syntax error in C variable declaration", ignore_semicolon=True)
 *         if ctx.level in ('c_class', 'c_class_pxd') and s.start_line == doc_line:
 *             doc = p_doc_string(s)             # <<<<<<<<<<<<<<
 *         else:
 *             doc = None
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_doc_string(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3199, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_doc = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3198
 *         doc_line = s.start_line + 1
 *         s.expect_newline("Syntax error in C variable declaration", ignore_semicolon=True)
 *         if ctx.level in ('c_class', 'c_class_pxd') and s.start_line == doc_line:             # <<<<<<<<<<<<<<
 *             doc = p_doc_string(s)
 *         else:
 */
      goto __pyx_L22;
    }

    /* "Cython/Compiler/Parsing.py":3201
 *             doc = p_doc_string(s)
 *         else:
 *             doc = None             # <<<<<<<<<<<<<<
 *         result = Nodes.CVarDefNode(pos,
 *             visibility = ctx.visibility,
 */
    /*else*/ {
      __Pyx_INCREF(Py_None);
      __pyx_v_doc = Py_None;
    }
    __pyx_L22:;

    /* "Cython/Compiler/Parsing.py":3202
 *         else:
 *             doc = None
 *         result = Nodes.CVarDefNode(pos,             # <<<<<<<<<<<<<<
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CVarDefNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":3203
 *             doc = None
 *         result = Nodes.CVarDefNode(pos,
 *             visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *             base_type = base_type,
 *             declarators = declarators,
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_visibility, __pyx_t_6) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3204
 *         result = Nodes.CVarDefNode(pos,
 *             visibility = ctx.visibility,
 *             base_type = base_type,             # <<<<<<<<<<<<<<
 *             declarators = declarators,
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3205
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 *             declarators = declarators,             # <<<<<<<<<<<<<<
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),
 *             doc = doc,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_declarators, __pyx_v_declarators) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3206
 *             base_type = base_type,
 *             declarators = declarators,
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),             # <<<<<<<<<<<<<<
 *             doc = doc,
 *             api = ctx.api,
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_module_pxd, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3206, __pyx_L1_error)
    if (!__pyx_t_7) {
    } else {
      __pyx_t_2 = __pyx_t_7;
      goto __pyx_L27_bool_binop_done;
    }
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3206, __pyx_L1_error)
    __pyx_t_2 = __pyx_t_7;
    __pyx_L27_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_in_pxd, __pyx_t_6) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3207
 *             declarators = declarators,
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),
 *             doc = doc,             # <<<<<<<<<<<<<<
 *             api = ctx.api,
 *             modifiers = modifiers,
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3208
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),
 *             doc = doc,
 *             api = ctx.api,             # <<<<<<<<<<<<<<
 *             modifiers = modifiers,
 *             overridable = ctx.overridable)
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_api, __pyx_t_6) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3209
 *             doc = doc,
 *             api = ctx.api,
 *             modifiers = modifiers,             # <<<<<<<<<<<<<<
 *             overridable = ctx.overridable)
 *     return result
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_modifiers, __pyx_v_modifiers) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3210
 *             api = ctx.api,
 *             modifiers = modifiers,
 *             overridable = ctx.overridable)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_overridable, __pyx_t_6) < 0) __PYX_ERR(0, 3203, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3202
 *         else:
 *             doc = None
 *         result = Nodes.CVarDefNode(pos,             # <<<<<<<<<<<<<<
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L9:;

  /* "Cython/Compiler/Parsing.py":3211
 *             modifiers = modifiers,
 *             overridable = ctx.overridable)
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_ctypedef_statement(s, ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3157
 *     return []
 * 
 * def p_c_func_or_var_declaration(s, pos, ctx):             # <<<<<<<<<<<<<<
 *     cmethod_flag = ctx.level in ('c_class', 'c_class_pxd')
 *     modifiers = p_c_modifiers(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_func_or_var_declaration", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_modifiers);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_suite);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_declarators);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3213
 *     return result
 * 
 * def p_ctypedef_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == 'ctypedef'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_visibility = NULL;
  PyObject *__pyx_v_api = NULL;
  PyObject *__pyx_v_base_type = NULL;
  PyObject *__pyx_v_declarator = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("p_ctypedef_statement", 0);
  __Pyx_INCREF(__pyx_v_ctx);

  /* "Cython/Compiler/Parsing.py":3215
 * def p_ctypedef_statement(s, ctx):
 *     # s.sy == 'ctypedef'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     visibility = p_visibility(s, ctx.visibility)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3216
 *     # s.sy == 'ctypedef'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     visibility = p_visibility(s, ctx.visibility)
 *     api = p_api(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3217
 *     pos = s.position()
 *     s.next()
 *     visibility = p_visibility(s, ctx.visibility)             # <<<<<<<<<<<<<<
 *     api = p_api(s)
 *     ctx = ctx(typedef_flag = 1, visibility = visibility)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_visibility(__pyx_v_s, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_visibility = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3218
 *     s.next()
 *     visibility = p_visibility(s, ctx.visibility)
 *     api = p_api(s)             # <<<<<<<<<<<<<<
 *     ctx = ctx(typedef_flag = 1, visibility = visibility)
 *     if api:
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_api(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_api = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3219
 *     visibility = p_visibility(s, ctx.visibility)
 *     api = p_api(s)
 *     ctx = ctx(typedef_flag = 1, visibility = visibility)             # <<<<<<<<<<<<<<
 *     if api:
 *         ctx.api = 1
 */
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_typedef_flag, __pyx_int_1) < 0) __PYX_ERR(0, 3219, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_visibility, __pyx_v_visibility) < 0) __PYX_ERR(0, 3219, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF_SET(__pyx_v_ctx, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3220
 *     api = p_api(s)
 *     ctx = ctx(typedef_flag = 1, visibility = visibility)
 *     if api:             # <<<<<<<<<<<<<<
 *         ctx.api = 1
 *     if s.sy == 'class':
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_api); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3220, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3221
 *     ctx = ctx(typedef_flag = 1, visibility = visibility)
 *     if api:
 *         ctx.api = 1             # <<<<<<<<<<<<<<
 *     if s.sy == 'class':
 *         return p_c_class_definition(s, pos, ctx)
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_api, __pyx_int_1) < 0) __PYX_ERR(0, 3221, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3220
 *     api = p_api(s)
 *     ctx = ctx(typedef_flag = 1, visibility = visibility)
 *     if api:             # <<<<<<<<<<<<<<
 *         ctx.api = 1
 *     if s.sy == 'class':
 */
  }

  /* "Cython/Compiler/Parsing.py":3222
 *     if api:
 *         ctx.api = 1
 *     if s.sy == 'class':             # <<<<<<<<<<<<<<
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3222, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3223
 *         ctx.api = 1
 *     if s.sy == 'class':
 *         return p_c_class_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         return p_struct_enum(s, pos, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_class_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3222
 *     if api:
 *         ctx.api = 1
 *     if s.sy == 'class':             # <<<<<<<<<<<<<<
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 */
  }

  /* "Cython/Compiler/Parsing.py":3224
 *     if s.sy == 'class':
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:             # <<<<<<<<<<<<<<
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3224, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3224, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_5;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3225
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         return p_struct_enum(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 *         return p_fused_definition(s, pos, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_struct_enum(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3224
 *     if s.sy == 'class':
 *         return p_c_class_definition(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:             # <<<<<<<<<<<<<<
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 */
  }

  /* "Cython/Compiler/Parsing.py":3226
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':             # <<<<<<<<<<<<<<
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3226, __pyx_L1_error)
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_fused, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3226, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3227
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 *         return p_fused_definition(s, pos, ctx)             # <<<<<<<<<<<<<<
 *     else:
 *         base_type = p_c_base_type(s, nonempty = 1)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_fused_definition(__pyx_v_s, __pyx_v_pos, __pyx_v_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3227, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3226
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':             # <<<<<<<<<<<<<<
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 */
  }

  /* "Cython/Compiler/Parsing.py":3229
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 *         base_type = p_c_base_type(s, nonempty = 1)             # <<<<<<<<<<<<<<
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement", ignore_semicolon=True)
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_nonempty, __pyx_int_1) < 0) __PYX_ERR(0, 3229, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_base_type = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":3230
 *     else:
 *         base_type = p_c_base_type(s, nonempty = 1)
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in ctypedef statement", ignore_semicolon=True)
 *         return Nodes.CTypeDefNode(
 */
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
    __Pyx_INCREF(__pyx_v_ctx);
    __Pyx_GIVEREF(__pyx_v_ctx);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ctx);
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_is_type, __pyx_int_1) < 0) __PYX_ERR(0, 3230, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nonempty, __pyx_int_1) < 0) __PYX_ERR(0, 3230, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_declarator = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3231
 *         base_type = p_c_base_type(s, nonempty = 1)
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *         return Nodes.CTypeDefNode(
 *             pos, base_type = base_type,
 */
    __pyx_t_8.__pyx_n = 2;
    __pyx_t_8.message = __pyx_kp_u_Syntax_error_in_ctypedef_stateme;
    __pyx_t_8.ignore_semicolon = 1;
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3231, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3232
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement", ignore_semicolon=True)
 *         return Nodes.CTypeDefNode(             # <<<<<<<<<<<<<<
 *             pos, base_type = base_type,
 *             declarator = declarator,
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CTypeDefNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":3233
 *         s.expect_newline("Syntax error in ctypedef statement", ignore_semicolon=True)
 *         return Nodes.CTypeDefNode(
 *             pos, base_type = base_type,             # <<<<<<<<<<<<<<
 *             declarator = declarator,
 *             visibility = visibility, api = api,
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3234
 *         return Nodes.CTypeDefNode(
 *             pos, base_type = base_type,
 *             declarator = declarator,             # <<<<<<<<<<<<<<
 *             visibility = visibility, api = api,
 *             in_pxd = ctx.level == 'module_pxd')
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_declarator, __pyx_v_declarator) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3235
 *             pos, base_type = base_type,
 *             declarator = declarator,
 *             visibility = visibility, api = api,             # <<<<<<<<<<<<<<
 *             in_pxd = ctx.level == 'module_pxd')
 * 
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_v_visibility) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_v_api) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3236
 *             declarator = declarator,
 *             visibility = visibility, api = api,
 *             in_pxd = ctx.level == 'module_pxd')             # <<<<<<<<<<<<<<
 * 
 * def p_decorators(s):
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3236, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in_pxd, __pyx_t_9) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":3232
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement", ignore_semicolon=True)
 *         return Nodes.CTypeDefNode(             # <<<<<<<<<<<<<<
 *             pos, base_type = base_type,
 *             declarator = declarator,
 */
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":3213
 *     return result
 * 
 * def p_ctypedef_statement(s, ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == 'ctypedef'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_ctypedef_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_visibility);
  __Pyx_XDECREF(__pyx_v_api);
  __Pyx_XDECREF(__pyx_v_base_type);
  __Pyx_XDECREF(__pyx_v_declarator);
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3238
 *             in_pxd = ctx.level == 'module_pxd')
 * 
 * def p_decorators(s):             # <<<<<<<<<<<<<<
 *     decorators = []
 *     while s.sy == '@':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_decorators(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_decorators = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_decstring = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_v_decorator = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_13;
  __Pyx_RefNannySetupContext("p_decorators", 0);

  /* "Cython/Compiler/Parsing.py":3239
 * 
 * def p_decorators(s):
 *     decorators = []             # <<<<<<<<<<<<<<
 *     while s.sy == '@':
 *         pos = s.position()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_decorators = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3240
 * def p_decorators(s):
 *     decorators = []
 *     while s.sy == '@':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__21, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3240, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":3241
 *     decorators = []
 *     while s.sy == '@':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_pos, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3242
 *     while s.sy == '@':
 *         pos = s.position()
 *         s.next()             # <<<<<<<<<<<<<<
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3243
 *         pos = s.position()
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]             # <<<<<<<<<<<<<<
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_decstring, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3244
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')             # <<<<<<<<<<<<<<
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_decstring, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3244, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__129, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3244, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_names, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3245
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))             # <<<<<<<<<<<<<<
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_names, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    if (!__pyx_t_8) {
      __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3245, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_7};
        __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3245, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_7};
        __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3245, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      {
        __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3245, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_7);
        __pyx_t_7 = 0;
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3245, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, __pyx_t_5) < 0) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_decorator, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3246
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:             # <<<<<<<<<<<<<<
 *             decorator = ExprNodes.AttributeNode(
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 */
    __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_names, 1, 0, NULL, NULL, &__pyx_slice__130, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3246, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3246, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3246, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3246, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3246, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_11(__pyx_t_4);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3246, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":3247
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(             # <<<<<<<<<<<<<<
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 *         if s.sy == '(':
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AttributeNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3247, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);

      /* "Cython/Compiler/Parsing.py":3248
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)             # <<<<<<<<<<<<<<
 *         if s.sy == '(':
 *             decorator = p_call(s, decorator)
 */
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3247, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3248, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_intern_ustring); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3248, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      if (!__pyx_t_7) {
        __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3248, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_name};
          __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3248, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_6);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_name};
          __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3248, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_6);
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3248, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
          __Pyx_INCREF(__pyx_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_name);
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3248, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attribute, __pyx_t_6) < 0) __PYX_ERR(0, 3248, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_obj, __pyx_v_decorator) < 0) __PYX_ERR(0, 3248, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":3247
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(             # <<<<<<<<<<<<<<
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 *         if s.sy == '(':
 */
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3247, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_decorator, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3246
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:             # <<<<<<<<<<<<<<
 *             decorator = ExprNodes.AttributeNode(
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":3249
 *             decorator = ExprNodes.AttributeNode(
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 *         if s.sy == '(':             # <<<<<<<<<<<<<<
 *             decorator = p_call(s, decorator)
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3249, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3250
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 *         if s.sy == '(':
 *             decorator = p_call(s, decorator)             # <<<<<<<<<<<<<<
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 *         s.expect_newline("Expected a newline after decorator")
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_call(__pyx_v_s, __pyx_v_decorator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3250, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_decorator, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3249
 *             decorator = ExprNodes.AttributeNode(
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 *         if s.sy == '(':             # <<<<<<<<<<<<<<
 *             decorator = p_call(s, decorator)
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 */
    }

    /* "Cython/Compiler/Parsing.py":3251
 *         if s.sy == '(':
 *             decorator = p_call(s, decorator)
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))             # <<<<<<<<<<<<<<
 *         s.expect_newline("Expected a newline after decorator")
 *     return decorators
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_DecoratorNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_decorator, __pyx_v_decorator) < 0) __PYX_ERR(0, 3251, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_decorators, __pyx_t_3); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 3251, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3252
 *             decorator = p_call(s, decorator)
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 *         s.expect_newline("Expected a newline after decorator")             # <<<<<<<<<<<<<<
 *     return decorators
 * 
 */
    __pyx_t_13.__pyx_n = 1;
    __pyx_t_13.message = __pyx_kp_u_Expected_a_newline_after_decorat;
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }

  /* "Cython/Compiler/Parsing.py":3253
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 *         s.expect_newline("Expected a newline after decorator")
 *     return decorators             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_decorators);
  __pyx_r = __pyx_v_decorators;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3238
 *             in_pxd = ctx.level == 'module_pxd')
 * 
 * def p_decorators(s):             # <<<<<<<<<<<<<<
 *     decorators = []
 *     while s.sy == '@':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_decorators", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_decorators);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_decstring);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XDECREF(__pyx_v_decorator);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3256
 * 
 * 
 * def p_def_statement(s, decorators=None, is_async_def=False):             # <<<<<<<<<<<<<<
 *     # s.sy == 'def'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_def_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement *__pyx_optional_args) {
  PyObject *__pyx_v_decorators = ((PyObject*)Py_None);
  int __pyx_v_is_async_def = ((int)0);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_star_arg = NULL;
  PyObject *__pyx_v_starstar_arg = NULL;
  PyObject *__pyx_v_return_type_annotation = NULL;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  __Pyx_RefNannySetupContext("p_def_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_decorators = __pyx_optional_args->decorators;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_is_async_def = __pyx_optional_args->is_async_def;
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":3258
 * def p_def_statement(s, decorators=None, is_async_def=False):
 *     # s.sy == 'def'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     # PEP 492 switches the async/await keywords on in "async def" functions
 *     if is_async_def:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3260
 *     pos = s.position()
 *     # PEP 492 switches the async/await keywords on in "async def" functions
 *     if is_async_def:             # <<<<<<<<<<<<<<
 *         s.enter_async()
 *     s.next()
 */
  __pyx_t_2 = (__pyx_v_is_async_def != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3261
 *     # PEP 492 switches the async/await keywords on in "async def" functions
 *     if is_async_def:
 *         s.enter_async()             # <<<<<<<<<<<<<<
 *     s.next()
 *     name = p_ident(s)
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->enter_async(__pyx_v_s); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 3261, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3260
 *     pos = s.position()
 *     # PEP 492 switches the async/await keywords on in "async def" functions
 *     if is_async_def:             # <<<<<<<<<<<<<<
 *         s.enter_async()
 *     s.next()
 */
  }

  /* "Cython/Compiler/Parsing.py":3262
 *     if is_async_def:
 *         s.enter_async()
 *     s.next()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     s.expect('(')
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3263
 *         s.enter_async()
 *     s.next()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     s.expect('(')
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3264
 *     s.next()
 *     name = p_ident(s)
 *     s.expect('(')             # <<<<<<<<<<<<<<
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')
 *     s.expect(')')
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__30, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3264, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3265
 *     name = p_ident(s)
 *     s.expect('(')
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     if p_nogil(s):
 */
  __pyx_t_4.__pyx_n = 1;
  __pyx_t_4.terminator = __pyx_kp_u__31;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_varargslist(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 3265, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 2); 
    }
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_7);
    #else
    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
    index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 2; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 3265, __pyx_L1_error)
    __pyx_t_9 = NULL;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L5_unpacking_done;
    __pyx_L4_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 3265, __pyx_L1_error)
    __pyx_L5_unpacking_done:;
  }
  __pyx_v_args = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_star_arg = __pyx_t_6;
  __pyx_t_6 = 0;
  __pyx_v_starstar_arg = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":3266
 *     s.expect('(')
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     if p_nogil(s):
 *         error(pos, "Python function cannot be declared nogil")
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3266, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3267
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')
 *     s.expect(')')
 *     if p_nogil(s):             # <<<<<<<<<<<<<<
 *         error(pos, "Python function cannot be declared nogil")
 *     return_type_annotation = None
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3268
 *     s.expect(')')
 *     if p_nogil(s):
 *         error(pos, "Python function cannot be declared nogil")             # <<<<<<<<<<<<<<
 *     return_type_annotation = None
 *     if s.sy == '->':
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
    __pyx_t_3 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_3 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Python_function_cannot_be_declar};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Python_function_cannot_be_declar};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_3, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Python_function_cannot_be_declar);
      __Pyx_GIVEREF(__pyx_kp_u_Python_function_cannot_be_declar);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_3, __pyx_kp_u_Python_function_cannot_be_declar);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3267
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')
 *     s.expect(')')
 *     if p_nogil(s):             # <<<<<<<<<<<<<<
 *         error(pos, "Python function cannot be declared nogil")
 *     return_type_annotation = None
 */
  }

  /* "Cython/Compiler/Parsing.py":3269
 *     if p_nogil(s):
 *         error(pos, "Python function cannot be declared nogil")
 *     return_type_annotation = None             # <<<<<<<<<<<<<<
 *     if s.sy == '->':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_return_type_annotation = Py_None;

  /* "Cython/Compiler/Parsing.py":3270
 *         error(pos, "Python function cannot be declared nogil")
 *     return_type_annotation = None
 *     if s.sy == '->':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return_type_annotation = p_test(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__131, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3270, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3271
 *     return_type_annotation = None
 *     if s.sy == '->':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return_type_annotation = p_test(s)
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3272
 *     if s.sy == '->':
 *         s.next()
 *         return_type_annotation = p_test(s)             # <<<<<<<<<<<<<<
 * 
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3272, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_return_type_annotation, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3270
 *         error(pos, "Python function cannot be declared nogil")
 *     return_type_annotation = None
 *     if s.sy == '->':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return_type_annotation = p_test(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":3274
 *         return_type_annotation = p_test(s)
 * 
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))             # <<<<<<<<<<<<<<
 *     if is_async_def:
 *         s.exit_async()
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_level, __pyx_n_u_function) < 0) __PYX_ERR(0, 3274, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(__pyx_v_s, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (likely(__pyx_t_7 != Py_None)) {
    PyObject* sequence = __pyx_t_7;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 3274, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_1);
    #else
    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3274, __pyx_L1_error)
  }
  __pyx_v_doc = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3275
 * 
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     if is_async_def:             # <<<<<<<<<<<<<<
 *         s.exit_async()
 * 
 */
  __pyx_t_2 = (__pyx_v_is_async_def != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3276
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     if is_async_def:
 *         s.exit_async()             # <<<<<<<<<<<<<<
 * 
 *     return Nodes.DefNode(
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->exit_async(__pyx_v_s); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 3276, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3275
 * 
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     if is_async_def:             # <<<<<<<<<<<<<<
 *         s.exit_async()
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":3278
 *         s.exit_async()
 * 
 *     return Nodes.DefNode(             # <<<<<<<<<<<<<<
 *         pos, name=name, args=args, star_arg=star_arg, starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators, is_async_def=is_async_def,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_DefNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "Cython/Compiler/Parsing.py":3279
 * 
 *     return Nodes.DefNode(
 *         pos, name=name, args=args, star_arg=star_arg, starstar_arg=starstar_arg,             # <<<<<<<<<<<<<<
 *         doc=doc, body=body, decorators=decorators, is_async_def=is_async_def,
 *         return_type_annotation=return_type_annotation)
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_star_arg, __pyx_v_star_arg) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_starstar_arg, __pyx_v_starstar_arg) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3280
 *     return Nodes.DefNode(
 *         pos, name=name, args=args, star_arg=star_arg, starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators, is_async_def=is_async_def,             # <<<<<<<<<<<<<<
 *         return_type_annotation=return_type_annotation)
 * 
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_decorators, __pyx_v_decorators) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_is_async_def); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_is_async_def, __pyx_t_6) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":3281
 *         pos, name=name, args=args, star_arg=star_arg, starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators, is_async_def=is_async_def,
 *         return_type_annotation=return_type_annotation)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_return_type_annotation, __pyx_v_return_type_annotation) < 0) __PYX_ERR(0, 3279, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3278
 *         s.exit_async()
 * 
 *     return Nodes.DefNode(             # <<<<<<<<<<<<<<
 *         pos, name=name, args=args, star_arg=star_arg, starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators, is_async_def=is_async_def,
 */
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3256
 * 
 * 
 * def p_def_statement(s, decorators=None, is_async_def=False):             # <<<<<<<<<<<<<<
 *     # s.sy == 'def'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_def_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_star_arg);
  __Pyx_XDECREF(__pyx_v_starstar_arg);
  __Pyx_XDECREF(__pyx_v_return_type_annotation);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3284
 * 
 * 
 * def p_varargslist(s, terminator=')', annotated=1):             # <<<<<<<<<<<<<<
 *     args = p_c_arg_list(s, in_pyfunc = 1, nonempty_declarators = 1,
 *                         annotated = annotated)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_varargslist(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist *__pyx_optional_args) {
  PyObject *__pyx_v_terminator = ((PyObject *)__pyx_kp_u__31);
  int __pyx_v_annotated = ((int)1);
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_star_arg = NULL;
  PyObject *__pyx_v_starstar_arg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_py_arg_decl __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_RefNannySetupContext("p_varargslist", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_terminator = __pyx_optional_args->terminator;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_annotated = __pyx_optional_args->annotated;
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":3285
 * 
 * def p_varargslist(s, terminator=')', annotated=1):
 *     args = p_c_arg_list(s, in_pyfunc = 1, nonempty_declarators = 1,             # <<<<<<<<<<<<<<
 *                         annotated = annotated)
 *     star_arg = None
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_in_pyfunc, __pyx_int_1) < 0) __PYX_ERR(0, 3285, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nonempty_declarators, __pyx_int_1) < 0) __PYX_ERR(0, 3285, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3286
 * def p_varargslist(s, terminator=')', annotated=1):
 *     args = p_c_arg_list(s, in_pyfunc = 1, nonempty_declarators = 1,
 *                         annotated = annotated)             # <<<<<<<<<<<<<<
 *     star_arg = None
 *     starstar_arg = None
 */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_annotated); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_annotated, __pyx_t_4) < 0) __PYX_ERR(0, 3285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":3285
 * 
 * def p_varargslist(s, terminator=')', annotated=1):
 *     args = p_c_arg_list(s, in_pyfunc = 1, nonempty_declarators = 1,             # <<<<<<<<<<<<<<
 *                         annotated = annotated)
 *     star_arg = None
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_args = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":3287
 *     args = p_c_arg_list(s, in_pyfunc = 1, nonempty_declarators = 1,
 *                         annotated = annotated)
 *     star_arg = None             # <<<<<<<<<<<<<<
 *     starstar_arg = None
 *     if s.sy == '*':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_star_arg = Py_None;

  /* "Cython/Compiler/Parsing.py":3288
 *                         annotated = annotated)
 *     star_arg = None
 *     starstar_arg = None             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_starstar_arg = Py_None;

  /* "Cython/Compiler/Parsing.py":3289
 *     star_arg = None
 *     starstar_arg = None
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == 'IDENT':
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3289, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":3290
 *     starstar_arg = None
 *     if s.sy == '*':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT':
 *             star_arg = p_py_arg_decl(s, annotated=annotated)
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":3291
 *     if s.sy == '*':
 *         s.next()
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             star_arg = p_py_arg_decl(s, annotated=annotated)
 *         if s.sy == ',':
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3291, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":3292
 *         s.next()
 *         if s.sy == 'IDENT':
 *             star_arg = p_py_arg_decl(s, annotated=annotated)             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
      __pyx_t_6.__pyx_n = 1;
      __pyx_t_6.annotated = __pyx_v_annotated;
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_py_arg_decl(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_star_arg, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3291
 *     if s.sy == '*':
 *         s.next()
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             star_arg = p_py_arg_decl(s, annotated=annotated)
 *         if s.sy == ',':
 */
    }

    /* "Cython/Compiler/Parsing.py":3293
 *         if s.sy == 'IDENT':
 *             star_arg = p_py_arg_decl(s, annotated=annotated)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3293, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":3294
 *             star_arg = p_py_arg_decl(s, annotated=annotated)
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 */
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3295
 *         if s.sy == ',':
 *             s.next()
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,             # <<<<<<<<<<<<<<
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 *         elif s.sy != terminator:
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_args, __pyx_n_s_extend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in_pyfunc, __pyx_int_1) < 0) __PYX_ERR(0, 3295, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_nonempty_declarators, __pyx_int_1) < 0) __PYX_ERR(0, 3295, __pyx_L1_error)
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_kw_only, __pyx_int_1) < 0) __PYX_ERR(0, 3295, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":3296
 *             s.next()
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))             # <<<<<<<<<<<<<<
 *         elif s.sy != terminator:
 *             s.error("Syntax error in Python function argument list")
 */
      __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_annotated); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_annotated, __pyx_t_8) < 0) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":3295
 *         if s.sy == ',':
 *             s.next()
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,             # <<<<<<<<<<<<<<
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 *         elif s.sy != terminator:
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      if (!__pyx_t_7) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_8};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3295, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_8};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3295, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL;
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_8);
          __pyx_t_8 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3293
 *         if s.sy == 'IDENT':
 *             star_arg = p_py_arg_decl(s, annotated=annotated)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,
 */
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":3297
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 *         elif s.sy != terminator:             # <<<<<<<<<<<<<<
 *             s.error("Syntax error in Python function argument list")
 *     if s.sy == '**':
 */
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_v_terminator, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":3298
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 *         elif s.sy != terminator:
 *             s.error("Syntax error in Python function argument list")             # <<<<<<<<<<<<<<
 *     if s.sy == '**':
 *         s.next()
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__132, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":3297
 *             args.extend(p_c_arg_list(s, in_pyfunc = 1,
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 *         elif s.sy != terminator:             # <<<<<<<<<<<<<<
 *             s.error("Syntax error in Python function argument list")
 *     if s.sy == '**':
 */
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":3289
 *     star_arg = None
 *     starstar_arg = None
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == 'IDENT':
 */
  }

  /* "Cython/Compiler/Parsing.py":3299
 *         elif s.sy != terminator:
 *             s.error("Syntax error in Python function argument list")
 *     if s.sy == '**':             # <<<<<<<<<<<<<<
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3299, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":3300
 *             s.error("Syntax error in Python function argument list")
 *     if s.sy == '**':
 *         s.next()             # <<<<<<<<<<<<<<
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 *     if s.sy == ',':
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3301
 *     if s.sy == '**':
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)             # <<<<<<<<<<<<<<
 *     if s.sy == ',':
 *         s.next()
 */
    __pyx_t_6.__pyx_n = 1;
    __pyx_t_6.annotated = __pyx_v_annotated;
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_py_arg_decl(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_starstar_arg, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3299
 *         elif s.sy != terminator:
 *             s.error("Syntax error in Python function argument list")
 *     if s.sy == '**':             # <<<<<<<<<<<<<<
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 */
  }

  /* "Cython/Compiler/Parsing.py":3302
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *     return (args, star_arg, starstar_arg)
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3302, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":3303
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 *     if s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *     return (args, star_arg, starstar_arg)
 * 
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3302
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 *     if s.sy == ',':             # <<<<<<<<<<<<<<
 *         s.next()
 *     return (args, star_arg, starstar_arg)
 */
  }

  /* "Cython/Compiler/Parsing.py":3304
 *     if s.sy == ',':
 *         s.next()
 *     return (args, star_arg, starstar_arg)             # <<<<<<<<<<<<<<
 * 
 * def p_py_arg_decl(s, annotated = 1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_args);
  __Pyx_GIVEREF(__pyx_v_args);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_args);
  __Pyx_INCREF(__pyx_v_star_arg);
  __Pyx_GIVEREF(__pyx_v_star_arg);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_star_arg);
  __Pyx_INCREF(__pyx_v_starstar_arg);
  __Pyx_GIVEREF(__pyx_v_starstar_arg);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_starstar_arg);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3284
 * 
 * 
 * def p_varargslist(s, terminator=')', annotated=1):             # <<<<<<<<<<<<<<
 *     args = p_c_arg_list(s, in_pyfunc = 1, nonempty_declarators = 1,
 *                         annotated = annotated)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_varargslist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_star_arg);
  __Pyx_XDECREF(__pyx_v_starstar_arg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3306
 *     return (args, star_arg, starstar_arg)
 * 
 * def p_py_arg_decl(s, annotated = 1):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     name = p_ident(s)
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_py_arg_decl(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_py_arg_decl *__pyx_optional_args) {
  int __pyx_v_annotated = ((int)1);
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_annotation = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_py_arg_decl", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_annotated = __pyx_optional_args->annotated;
    }
  }

  /* "Cython/Compiler/Parsing.py":3307
 * 
 * def p_py_arg_decl(s, annotated = 1):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     annotation = None
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3308
 * def p_py_arg_decl(s, annotated = 1):
 *     pos = s.position()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     annotation = None
 *     if annotated and s.sy == ':':
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3309
 *     pos = s.position()
 *     name = p_ident(s)
 *     annotation = None             # <<<<<<<<<<<<<<
 *     if annotated and s.sy == ':':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_annotation = Py_None;

  /* "Cython/Compiler/Parsing.py":3310
 *     name = p_ident(s)
 *     annotation = None
 *     if annotated and s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         annotation = p_test(s)
 */
  __pyx_t_3 = (__pyx_v_annotated != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3310, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3311
 *     annotation = None
 *     if annotated and s.sy == ':':
 *         s.next()             # <<<<<<<<<<<<<<
 *         annotation = p_test(s)
 *     return Nodes.PyArgDeclNode(pos, name = name, annotation = annotation)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3312
 *     if annotated and s.sy == ':':
 *         s.next()
 *         annotation = p_test(s)             # <<<<<<<<<<<<<<
 *     return Nodes.PyArgDeclNode(pos, name = name, annotation = annotation)
 * 
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_annotation, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3310
 *     name = p_ident(s)
 *     annotation = None
 *     if annotated and s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         annotation = p_test(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":3313
 *         s.next()
 *         annotation = p_test(s)
 *     return Nodes.PyArgDeclNode(pos, name = name, annotation = annotation)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PyArgDeclNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3313, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_annotation, __pyx_v_annotation) < 0) __PYX_ERR(0, 3313, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3306
 *     return (args, star_arg, starstar_arg)
 * 
 * def p_py_arg_decl(s, annotated = 1):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     name = p_ident(s)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_py_arg_decl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_annotation);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3316
 * 
 * 
 * def p_class_statement(s, decorators):             # <<<<<<<<<<<<<<
 *     # s.sy == 'class'
 *     pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_class_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_decorators) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_class_name = NULL;
  PyObject *__pyx_v_arg_tuple = NULL;
  PyObject *__pyx_v_keyword_dict = NULL;
  PyObject *__pyx_v_positional_args = NULL;
  PyObject *__pyx_v_keyword_args = NULL;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_t_9;
  __Pyx_RefNannySetupContext("p_class_statement", 0);

  /* "Cython/Compiler/Parsing.py":3318
 * def p_class_statement(s, decorators):
 *     # s.sy == 'class'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     class_name = EncodedString(p_ident(s))
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3319
 *     # s.sy == 'class'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     class_name = EncodedString(p_ident(s))
 *     class_name.encoding = s.source_encoding  # FIXME: why is this needed?
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3320
 *     pos = s.position()
 *     s.next()
 *     class_name = EncodedString(p_ident(s))             # <<<<<<<<<<<<<<
 *     class_name.encoding = s.source_encoding  # FIXME: why is this needed?
 *     arg_tuple = None
 */
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
  __pyx_t_3 = __pyx_v_6Cython_8Compiler_7Parsing_EncodedString; __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (!__pyx_t_4) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_class_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3321
 *     s.next()
 *     class_name = EncodedString(p_ident(s))
 *     class_name.encoding = s.source_encoding  # FIXME: why is this needed?             # <<<<<<<<<<<<<<
 *     arg_tuple = None
 *     keyword_dict = None
 */
  __pyx_t_1 = __pyx_v_s->source_encoding;
  __Pyx_INCREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_class_name, __pyx_n_s_encoding, __pyx_t_1) < 0) __PYX_ERR(0, 3321, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3322
 *     class_name = EncodedString(p_ident(s))
 *     class_name.encoding = s.source_encoding  # FIXME: why is this needed?
 *     arg_tuple = None             # <<<<<<<<<<<<<<
 *     keyword_dict = None
 *     if s.sy == '(':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_arg_tuple = Py_None;

  /* "Cython/Compiler/Parsing.py":3323
 *     class_name.encoding = s.source_encoding  # FIXME: why is this needed?
 *     arg_tuple = None
 *     keyword_dict = None             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_keyword_dict = Py_None;

  /* "Cython/Compiler/Parsing.py":3324
 *     arg_tuple = None
 *     keyword_dict = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 */
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3324, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":3325
 *     keyword_dict = None
 *     if s.sy == '(':
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)             # <<<<<<<<<<<<<<
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 *     if arg_tuple is None:
 */
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.allow_genexp = 0;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3325, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_8(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_2); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_2), 2) < 0) __PYX_ERR(0, 3325, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L5_unpacking_done;
      __pyx_L4_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3325, __pyx_L1_error)
      __pyx_L5_unpacking_done:;
    }
    __pyx_v_positional_args = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_keyword_args = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3326
 *     if s.sy == '(':
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)             # <<<<<<<<<<<<<<
 *     if arg_tuple is None:
 *         # XXX: empty arg_tuple
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args(__pyx_v_pos, __pyx_v_positional_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3326, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext;
      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_2); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_2), 2) < 0) __PYX_ERR(0, 3326, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3326, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }
    __Pyx_DECREF_SET(__pyx_v_arg_tuple, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_keyword_dict, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3324
 *     arg_tuple = None
 *     keyword_dict = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 */
  }

  /* "Cython/Compiler/Parsing.py":3327
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 *     if arg_tuple is None:             # <<<<<<<<<<<<<<
 *         # XXX: empty arg_tuple
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])
 */
  __pyx_t_6 = (__pyx_v_arg_tuple == Py_None);
  __pyx_t_9 = (__pyx_t_6 != 0);
  if (__pyx_t_9) {

    /* "Cython/Compiler/Parsing.py":3329
 *     if arg_tuple is None:
 *         # XXX: empty arg_tuple
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])             # <<<<<<<<<<<<<<
 *     doc, body = p_suite_with_docstring(s, Ctx(level='class'))
 *     return Nodes.PyClassDefNode(
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_t_2) < 0) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_arg_tuple, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3327
 *         positional_args, keyword_args = p_call_parse_args(s, allow_genexp=False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(pos, positional_args, keyword_args)
 *     if arg_tuple is None:             # <<<<<<<<<<<<<<
 *         # XXX: empty arg_tuple
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])
 */
  }

  /* "Cython/Compiler/Parsing.py":3330
 *         # XXX: empty arg_tuple
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])
 *     doc, body = p_suite_with_docstring(s, Ctx(level='class'))             # <<<<<<<<<<<<<<
 *     return Nodes.PyClassDefNode(
 *         pos, name=class_name,
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_level, __pyx_n_u_class_2) < 0) __PYX_ERR(0, 3330, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(__pyx_v_s, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(__pyx_t_5 != Py_None)) {
    PyObject* sequence = __pyx_t_5;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 3330, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3330, __pyx_L1_error)
  }
  __pyx_v_doc = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_body = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3331
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])
 *     doc, body = p_suite_with_docstring(s, Ctx(level='class'))
 *     return Nodes.PyClassDefNode(             # <<<<<<<<<<<<<<
 *         pos, name=class_name,
 *         bases=arg_tuple,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PyClassDefNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "Cython/Compiler/Parsing.py":3332
 *     doc, body = p_suite_with_docstring(s, Ctx(level='class'))
 *     return Nodes.PyClassDefNode(
 *         pos, name=class_name,             # <<<<<<<<<<<<<<
 *         bases=arg_tuple,
 *         keyword_args=keyword_dict,
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_name, __pyx_v_class_name) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3333
 *     return Nodes.PyClassDefNode(
 *         pos, name=class_name,
 *         bases=arg_tuple,             # <<<<<<<<<<<<<<
 *         keyword_args=keyword_dict,
 *         doc=doc, body=body, decorators=decorators,
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_bases, __pyx_v_arg_tuple) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3334
 *         pos, name=class_name,
 *         bases=arg_tuple,
 *         keyword_args=keyword_dict,             # <<<<<<<<<<<<<<
 *         doc=doc, body=body, decorators=decorators,
 *         force_py3_semantics=s.context.language_level >= 3)
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_keyword_args, __pyx_v_keyword_dict) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3335
 *         bases=arg_tuple,
 *         keyword_args=keyword_dict,
 *         doc=doc, body=body, decorators=decorators,             # <<<<<<<<<<<<<<
 *         force_py3_semantics=s.context.language_level >= 3)
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_decorators, __pyx_v_decorators) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3336
 *         keyword_args=keyword_dict,
 *         doc=doc, body=body, decorators=decorators,
 *         force_py3_semantics=s.context.language_level >= 3)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3336, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_force_py3_semantics, __pyx_t_4) < 0) __PYX_ERR(0, 3332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":3331
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])
 *     doc, body = p_suite_with_docstring(s, Ctx(level='class'))
 *     return Nodes.PyClassDefNode(             # <<<<<<<<<<<<<<
 *         pos, name=class_name,
 *         bases=arg_tuple,
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3316
 * 
 * 
 * def p_class_statement(s, decorators):             # <<<<<<<<<<<<<<
 *     # s.sy == 'class'
 *     pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_class_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_class_name);
  __Pyx_XDECREF(__pyx_v_arg_tuple);
  __Pyx_XDECREF(__pyx_v_keyword_dict);
  __Pyx_XDECREF(__pyx_v_positional_args);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3339
 * 
 * 
 * def p_c_class_definition(s, pos,  ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == 'class'
 *     s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_module_path = NULL;
  PyObject *__pyx_v_class_name = NULL;
  PyObject *__pyx_v_as_name = NULL;
  PyObject *__pyx_v_objstruct_name = NULL;
  PyObject *__pyx_v_typeobj_name = NULL;
  PyObject *__pyx_v_base_class_module = NULL;
  PyObject *__pyx_v_base_class_name = NULL;
  PyObject *__pyx_v_base_class_path = NULL;
  PyObject *__pyx_v_body_level = NULL;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_12;
  __Pyx_RefNannySetupContext("p_c_class_definition", 0);

  /* "Cython/Compiler/Parsing.py":3341
 * def p_c_class_definition(s, pos,  ctx):
 *     # s.sy == 'class'
 *     s.next()             # <<<<<<<<<<<<<<
 *     module_path = []
 *     class_name = p_ident(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3342
 *     # s.sy == 'class'
 *     s.next()
 *     module_path = []             # <<<<<<<<<<<<<<
 *     class_name = p_ident(s)
 *     while s.sy == '.':
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module_path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3343
 *     s.next()
 *     module_path = []
 *     class_name = p_ident(s)             # <<<<<<<<<<<<<<
 *     while s.sy == '.':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_class_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3344
 *     module_path = []
 *     class_name = p_ident(s)
 *     while s.sy == '.':             # <<<<<<<<<<<<<<
 *         s.next()
 *         module_path.append(class_name)
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3344, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":3345
 *     class_name = p_ident(s)
 *     while s.sy == '.':
 *         s.next()             # <<<<<<<<<<<<<<
 *         module_path.append(class_name)
 *         class_name = p_ident(s)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3346
 *     while s.sy == '.':
 *         s.next()
 *         module_path.append(class_name)             # <<<<<<<<<<<<<<
 *         class_name = p_ident(s)
 *     if module_path and ctx.visibility != 'extern':
 */
    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_module_path, __pyx_v_class_name); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 3346, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3347
 *         s.next()
 *         module_path.append(class_name)
 *         class_name = p_ident(s)             # <<<<<<<<<<<<<<
 *     if module_path and ctx.visibility != 'extern':
 *         error(pos, "Qualified class name only allowed for 'extern' C class")
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_class_name, __pyx_t_1);
    __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":3348
 *         module_path.append(class_name)
 *         class_name = p_ident(s)
 *     if module_path and ctx.visibility != 'extern':             # <<<<<<<<<<<<<<
 *         error(pos, "Qualified class name only allowed for 'extern' C class")
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':
 */
  __pyx_t_4 = (__pyx_v_module_path != Py_None) && (PyList_GET_SIZE(__pyx_v_module_path) != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_extern, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3348, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3349
 *         class_name = p_ident(s)
 *     if module_path and ctx.visibility != 'extern':
 *         error(pos, "Qualified class name only allowed for 'extern' C class")             # <<<<<<<<<<<<<<
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Qualified_class_name_only_allowe};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Qualified_class_name_only_allowe};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Qualified_class_name_only_allowe);
      __Pyx_GIVEREF(__pyx_kp_u_Qualified_class_name_only_allowe);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Qualified_class_name_only_allowe);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3348
 *         module_path.append(class_name)
 *         class_name = p_ident(s)
 *     if module_path and ctx.visibility != 'extern':             # <<<<<<<<<<<<<<
 *         error(pos, "Qualified class name only allowed for 'extern' C class")
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':
 */
  }

  /* "Cython/Compiler/Parsing.py":3350
 *     if module_path and ctx.visibility != 'extern':
 *         error(pos, "Qualified class name only allowed for 'extern' C class")
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *         s.next()
 *         as_name = p_ident(s)
 */
  __pyx_t_4 = (__pyx_v_module_path != Py_None) && (PyList_GET_SIZE(__pyx_v_module_path) != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L9_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3350, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L9_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3350, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_4;
  __pyx_L9_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3351
 *         error(pos, "Qualified class name only allowed for 'extern' C class")
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()             # <<<<<<<<<<<<<<
 *         as_name = p_ident(s)
 *     else:
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3352
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()
 *         as_name = p_ident(s)             # <<<<<<<<<<<<<<
 *     else:
 *         as_name = class_name
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_as_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3350
 *     if module_path and ctx.visibility != 'extern':
 *         error(pos, "Qualified class name only allowed for 'extern' C class")
 *     if module_path and s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *         s.next()
 *         as_name = p_ident(s)
 */
    goto __pyx_L8;
  }

  /* "Cython/Compiler/Parsing.py":3354
 *         as_name = p_ident(s)
 *     else:
 *         as_name = class_name             # <<<<<<<<<<<<<<
 *     objstruct_name = None
 *     typeobj_name = None
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_v_class_name);
    __pyx_v_as_name = __pyx_v_class_name;
  }
  __pyx_L8:;

  /* "Cython/Compiler/Parsing.py":3355
 *     else:
 *         as_name = class_name
 *     objstruct_name = None             # <<<<<<<<<<<<<<
 *     typeobj_name = None
 *     base_class_module = None
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_objstruct_name = Py_None;

  /* "Cython/Compiler/Parsing.py":3356
 *         as_name = class_name
 *     objstruct_name = None
 *     typeobj_name = None             # <<<<<<<<<<<<<<
 *     base_class_module = None
 *     base_class_name = None
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_typeobj_name = Py_None;

  /* "Cython/Compiler/Parsing.py":3357
 *     objstruct_name = None
 *     typeobj_name = None
 *     base_class_module = None             # <<<<<<<<<<<<<<
 *     base_class_name = None
 *     if s.sy == '(':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_base_class_module = Py_None;

  /* "Cython/Compiler/Parsing.py":3358
 *     typeobj_name = None
 *     base_class_module = None
 *     base_class_name = None             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         s.next()
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_base_class_name = Py_None;

  /* "Cython/Compiler/Parsing.py":3359
 *     base_class_module = None
 *     base_class_name = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_class_path = [p_ident(s)]
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3359, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3360
 *     base_class_name = None
 *     if s.sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         base_class_path = [p_ident(s)]
 *         while s.sy == '.':
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3361
 *     if s.sy == '(':
 *         s.next()
 *         base_class_path = [p_ident(s)]             # <<<<<<<<<<<<<<
 *         while s.sy == '.':
 *             s.next()
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_base_class_path = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3362
 *         s.next()
 *         base_class_path = [p_ident(s)]
 *         while s.sy == '.':             # <<<<<<<<<<<<<<
 *             s.next()
 *             base_class_path.append(p_ident(s))
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3362, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":3363
 *         base_class_path = [p_ident(s)]
 *         while s.sy == '.':
 *             s.next()             # <<<<<<<<<<<<<<
 *             base_class_path.append(p_ident(s))
 *         if s.sy == ',':
 */
      __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3363, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":3364
 *         while s.sy == '.':
 *             s.next()
 *             base_class_path.append(p_ident(s))             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.error("C class may only have one base class", fatal=False)
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3364, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_base_class_path, __pyx_t_5); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 3364, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3365
 *             s.next()
 *             base_class_path.append(p_ident(s))
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.error("C class may only have one base class", fatal=False)
 *         s.expect(')')
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3365, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3366
 *             base_class_path.append(p_ident(s))
 *         if s.sy == ',':
 *             s.error("C class may only have one base class", fatal=False)             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *         base_class_module = ".".join(base_class_path[:-1])
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3366, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3366, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 3366, __pyx_L1_error)
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__133, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3366, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":3365
 *             s.next()
 *             base_class_path.append(p_ident(s))
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.error("C class may only have one base class", fatal=False)
 *         s.expect(')')
 */
    }

    /* "Cython/Compiler/Parsing.py":3367
 *         if s.sy == ',':
 *             s.error("C class may only have one base class", fatal=False)
 *         s.expect(')')             # <<<<<<<<<<<<<<
 *         base_class_module = ".".join(base_class_path[:-1])
 *         base_class_name = base_class_path[-1]
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3367, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3368
 *             s.error("C class may only have one base class", fatal=False)
 *         s.expect(')')
 *         base_class_module = ".".join(base_class_path[:-1])             # <<<<<<<<<<<<<<
 *         base_class_name = base_class_path[-1]
 *     if s.sy == '[':
 */
    __pyx_t_8 = __Pyx_PyList_GetSlice(__pyx_v_base_class_path, 0, -1L); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__37, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_base_class_module, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3369
 *         s.expect(')')
 *         base_class_module = ".".join(base_class_path[:-1])
 *         base_class_name = base_class_path[-1]             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:
 */
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_base_class_path, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_base_class_name, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3359
 *     base_class_module = None
 *     base_class_name = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_class_path = [p_ident(s)]
 */
  }

  /* "Cython/Compiler/Parsing.py":3370
 *         base_class_module = ".".join(base_class_path[:-1])
 *         base_class_name = base_class_path[-1]
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3370, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3371
 *         base_class_name = base_class_path[-1]
 *     if s.sy == '[':
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:             # <<<<<<<<<<<<<<
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_public, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3371, __pyx_L1_error)
    if (__pyx_t_9) {
    } else {
      __pyx_t_4 = __pyx_t_9;
      goto __pyx_L20_bool_binop_done;
    }
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_extern, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3371, __pyx_L1_error)
    __pyx_t_4 = __pyx_t_9;
    __pyx_L20_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_9 = (__pyx_t_4 != 0);
    if (__pyx_t_9) {
    } else {
      __pyx_t_2 = __pyx_t_9;
      goto __pyx_L18_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3371, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = ((!__pyx_t_9) != 0);
    __pyx_t_2 = __pyx_t_4;
    __pyx_L18_bool_binop_done:;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3372
 *     if s.sy == '[':
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")             # <<<<<<<<<<<<<<
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 *     if s.sy == ':':
 */
      __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3372, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_8, __pyx_kp_u_Name_options_only_allowed_for_pu};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3372, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_8, __pyx_kp_u_Name_options_only_allowed_for_pu};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3372, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      {
        __pyx_t_10 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3372, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_t_8);
        __Pyx_INCREF(__pyx_kp_u_Name_options_only_allowed_for_pu);
        __Pyx_GIVEREF(__pyx_kp_u_Name_options_only_allowed_for_pu);
        PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_kp_u_Name_options_only_allowed_for_pu);
        __pyx_t_8 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3372, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3371
 *         base_class_name = base_class_path[-1]
 *     if s.sy == '[':
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:             # <<<<<<<<<<<<<<
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 */
    }

    /* "Cython/Compiler/Parsing.py":3373
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 *         objstruct_name, typeobj_name = p_c_class_options(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         if ctx.level == 'module_pxd':
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_class_options(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3373, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_10);
      #else
      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext;
      index = 0; __pyx_t_5 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L22_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 1; __pyx_t_10 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_10)) goto __pyx_L22_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_10);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_8), 2) < 0) __PYX_ERR(0, 3373, __pyx_L1_error)
      __pyx_t_11 = NULL;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L23_unpacking_done;
      __pyx_L22_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_11 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3373, __pyx_L1_error)
      __pyx_L23_unpacking_done:;
    }
    __Pyx_DECREF_SET(__pyx_v_objstruct_name, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_typeobj_name, __pyx_t_10);
    __pyx_t_10 = 0;

    /* "Cython/Compiler/Parsing.py":3370
 *         base_class_module = ".".join(base_class_path[:-1])
 *         base_class_name = base_class_path[-1]
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if ctx.visibility not in ('public', 'extern') and not ctx.api:
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 */
  }

  /* "Cython/Compiler/Parsing.py":3374
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         if ctx.level == 'module_pxd':
 *             body_level = 'c_class_pxd'
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3374, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3375
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 *     if s.sy == ':':
 *         if ctx.level == 'module_pxd':             # <<<<<<<<<<<<<<
 *             body_level = 'c_class_pxd'
 *         else:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3375, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3376
 *     if s.sy == ':':
 *         if ctx.level == 'module_pxd':
 *             body_level = 'c_class_pxd'             # <<<<<<<<<<<<<<
 *         else:
 *             body_level = 'c_class'
 */
      __Pyx_INCREF(__pyx_n_u_c_class_pxd);
      __pyx_v_body_level = __pyx_n_u_c_class_pxd;

      /* "Cython/Compiler/Parsing.py":3375
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 *     if s.sy == ':':
 *         if ctx.level == 'module_pxd':             # <<<<<<<<<<<<<<
 *             body_level = 'c_class_pxd'
 *         else:
 */
      goto __pyx_L25;
    }

    /* "Cython/Compiler/Parsing.py":3378
 *             body_level = 'c_class_pxd'
 *         else:
 *             body_level = 'c_class'             # <<<<<<<<<<<<<<
 *         doc, body = p_suite_with_docstring(s, Ctx(level=body_level))
 *     else:
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_n_u_c_class);
      __pyx_v_body_level = __pyx_n_u_c_class;
    }
    __pyx_L25:;

    /* "Cython/Compiler/Parsing.py":3379
 *         else:
 *             body_level = 'c_class'
 *         doc, body = p_suite_with_docstring(s, Ctx(level=body_level))             # <<<<<<<<<<<<<<
 *     else:
 *         s.expect_newline("Syntax error in C class definition")
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_level, __pyx_v_body_level) < 0) __PYX_ERR(0, 3379, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(__pyx_v_s, __pyx_t_5, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(__pyx_t_10 != Py_None)) {
      PyObject* sequence = __pyx_t_10;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3379, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_1);
      #else
      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3379, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3379, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3379, __pyx_L1_error)
    }
    __pyx_v_doc = __pyx_t_5;
    __pyx_t_5 = 0;
    __pyx_v_body = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3374
 *             error(s.position(), "Name options only allowed for 'public', 'api', or 'extern' C class")
 *         objstruct_name, typeobj_name = p_c_class_options(s)
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         if ctx.level == 'module_pxd':
 *             body_level = 'c_class_pxd'
 */
    goto __pyx_L24;
  }

  /* "Cython/Compiler/Parsing.py":3381
 *         doc, body = p_suite_with_docstring(s, Ctx(level=body_level))
 *     else:
 *         s.expect_newline("Syntax error in C class definition")             # <<<<<<<<<<<<<<
 *         doc = None
 *         body = None
 */
  /*else*/ {
    __pyx_t_12.__pyx_n = 1;
    __pyx_t_12.message = __pyx_kp_u_Syntax_error_in_C_class_definiti;
    __pyx_t_10 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "Cython/Compiler/Parsing.py":3382
 *     else:
 *         s.expect_newline("Syntax error in C class definition")
 *         doc = None             # <<<<<<<<<<<<<<
 *         body = None
 *     if ctx.visibility == 'extern':
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_doc = Py_None;

    /* "Cython/Compiler/Parsing.py":3383
 *         s.expect_newline("Syntax error in C class definition")
 *         doc = None
 *         body = None             # <<<<<<<<<<<<<<
 *     if ctx.visibility == 'extern':
 *         if not module_path:
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_body = Py_None;
  }
  __pyx_L24:;

  /* "Cython/Compiler/Parsing.py":3384
 *         doc = None
 *         body = None
 *     if ctx.visibility == 'extern':             # <<<<<<<<<<<<<<
 *         if not module_path:
 *             error(pos, "Module name required for 'extern' C class")
 */
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_10, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3385
 *         body = None
 *     if ctx.visibility == 'extern':
 *         if not module_path:             # <<<<<<<<<<<<<<
 *             error(pos, "Module name required for 'extern' C class")
 *         if typeobj_name:
 */
    __pyx_t_2 = (__pyx_v_module_path != Py_None) && (PyList_GET_SIZE(__pyx_v_module_path) != 0);
    __pyx_t_4 = ((!__pyx_t_2) != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":3386
 *     if ctx.visibility == 'extern':
 *         if not module_path:
 *             error(pos, "Module name required for 'extern' C class")             # <<<<<<<<<<<<<<
 *         if typeobj_name:
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Module_name_required_for_extern};
        __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3386, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Module_name_required_for_extern};
        __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3386, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Module_name_required_for_extern);
        __Pyx_GIVEREF(__pyx_kp_u_Module_name_required_for_extern);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Module_name_required_for_extern);
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "Cython/Compiler/Parsing.py":3385
 *         body = None
 *     if ctx.visibility == 'extern':
 *         if not module_path:             # <<<<<<<<<<<<<<
 *             error(pos, "Module name required for 'extern' C class")
 *         if typeobj_name:
 */
    }

    /* "Cython/Compiler/Parsing.py":3387
 *         if not module_path:
 *             error(pos, "Module name required for 'extern' C class")
 *         if typeobj_name:             # <<<<<<<<<<<<<<
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 *     elif ctx.visibility == 'public':
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_typeobj_name); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3387, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":3388
 *             error(pos, "Module name required for 'extern' C class")
 *         if typeobj_name:
 *             error(pos, "Type object name specification not allowed for 'extern' C class")             # <<<<<<<<<<<<<<
 *     elif ctx.visibility == 'public':
 *         if not objstruct_name:
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Type_object_name_specification_n};
        __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3388, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Type_object_name_specification_n};
        __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3388, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3388, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Type_object_name_specification_n);
        __Pyx_GIVEREF(__pyx_kp_u_Type_object_name_specification_n);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_u_Type_object_name_specification_n);
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3388, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "Cython/Compiler/Parsing.py":3387
 *         if not module_path:
 *             error(pos, "Module name required for 'extern' C class")
 *         if typeobj_name:             # <<<<<<<<<<<<<<
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 *     elif ctx.visibility == 'public':
 */
    }

    /* "Cython/Compiler/Parsing.py":3384
 *         doc = None
 *         body = None
 *     if ctx.visibility == 'extern':             # <<<<<<<<<<<<<<
 *         if not module_path:
 *             error(pos, "Module name required for 'extern' C class")
 */
    goto __pyx_L26;
  }

  /* "Cython/Compiler/Parsing.py":3389
 *         if typeobj_name:
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 *     elif ctx.visibility == 'public':             # <<<<<<<<<<<<<<
 *         if not objstruct_name:
 *             error(pos, "Object struct name specification required for 'public' C class")
 */
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_10, __pyx_n_u_public, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3390
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 *     elif ctx.visibility == 'public':
 *         if not objstruct_name:             # <<<<<<<<<<<<<<
 *             error(pos, "Object struct name specification required for 'public' C class")
 *         if not typeobj_name:
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_objstruct_name); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3390, __pyx_L1_error)
    __pyx_t_2 = ((!__pyx_t_4) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3391
 *     elif ctx.visibility == 'public':
 *         if not objstruct_name:
 *             error(pos, "Object struct name specification required for 'public' C class")             # <<<<<<<<<<<<<<
 *         if not typeobj_name:
 *             error(pos, "Type object name specification required for 'public' C class")
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Object_struct_name_specification};
        __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3391, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Object_struct_name_specification};
        __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3391, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3391, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Object_struct_name_specification);
        __Pyx_GIVEREF(__pyx_kp_u_Object_struct_name_specification);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Object_struct_name_specification);
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3391, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "Cython/Compiler/Parsing.py":3390
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 *     elif ctx.visibility == 'public':
 *         if not objstruct_name:             # <<<<<<<<<<<<<<
 *             error(pos, "Object struct name specification required for 'public' C class")
 *         if not typeobj_name:
 */
    }

    /* "Cython/Compiler/Parsing.py":3392
 *         if not objstruct_name:
 *             error(pos, "Object struct name specification required for 'public' C class")
 *         if not typeobj_name:             # <<<<<<<<<<<<<<
 *             error(pos, "Type object name specification required for 'public' C class")
 *     elif ctx.visibility == 'private':
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_typeobj_name); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3392, __pyx_L1_error)
    __pyx_t_4 = ((!__pyx_t_2) != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":3393
 *             error(pos, "Object struct name specification required for 'public' C class")
 *         if not typeobj_name:
 *             error(pos, "Type object name specification required for 'public' C class")             # <<<<<<<<<<<<<<
 *     elif ctx.visibility == 'private':
 *         if ctx.api:
 */
      __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
      __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Type_object_name_specification_r};
        __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3393, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Type_object_name_specification_r};
        __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3393, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3393, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Type_object_name_specification_r);
        __Pyx_GIVEREF(__pyx_kp_u_Type_object_name_specification_r);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_u_Type_object_name_specification_r);
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3393, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "Cython/Compiler/Parsing.py":3392
 *         if not objstruct_name:
 *             error(pos, "Object struct name specification required for 'public' C class")
 *         if not typeobj_name:             # <<<<<<<<<<<<<<
 *             error(pos, "Type object name specification required for 'public' C class")
 *     elif ctx.visibility == 'private':
 */
    }

    /* "Cython/Compiler/Parsing.py":3389
 *         if typeobj_name:
 *             error(pos, "Type object name specification not allowed for 'extern' C class")
 *     elif ctx.visibility == 'public':             # <<<<<<<<<<<<<<
 *         if not objstruct_name:
 *             error(pos, "Object struct name specification required for 'public' C class")
 */
    goto __pyx_L26;
  }

  /* "Cython/Compiler/Parsing.py":3394
 *         if not typeobj_name:
 *             error(pos, "Type object name specification required for 'public' C class")
 *     elif ctx.visibility == 'private':             # <<<<<<<<<<<<<<
 *         if ctx.api:
 *             if not objstruct_name:
 */
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_10, __pyx_n_u_private, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3395
 *             error(pos, "Type object name specification required for 'public' C class")
 *     elif ctx.visibility == 'private':
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             if not objstruct_name:
 *                 error(pos, "Object struct name specification required for 'api' C class")
 */
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":3396
 *     elif ctx.visibility == 'private':
 *         if ctx.api:
 *             if not objstruct_name:             # <<<<<<<<<<<<<<
 *                 error(pos, "Object struct name specification required for 'api' C class")
 *             if not typeobj_name:
 */
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_objstruct_name); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3396, __pyx_L1_error)
      __pyx_t_2 = ((!__pyx_t_4) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":3397
 *         if ctx.api:
 *             if not objstruct_name:
 *                 error(pos, "Object struct name specification required for 'api' C class")             # <<<<<<<<<<<<<<
 *             if not typeobj_name:
 *                 error(pos, "Type object name specification required for 'api' C class")
 */
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_5 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Object_struct_name_specification_2};
          __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3397, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_10);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pos, __pyx_kp_u_Object_struct_name_specification_2};
          __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3397, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_10);
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3397, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
          __Pyx_INCREF(__pyx_kp_u_Object_struct_name_specification_2);
          __Pyx_GIVEREF(__pyx_kp_u_Object_struct_name_specification_2);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Object_struct_name_specification_2);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3397, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "Cython/Compiler/Parsing.py":3396
 *     elif ctx.visibility == 'private':
 *         if ctx.api:
 *             if not objstruct_name:             # <<<<<<<<<<<<<<
 *                 error(pos, "Object struct name specification required for 'api' C class")
 *             if not typeobj_name:
 */
      }

      /* "Cython/Compiler/Parsing.py":3398
 *             if not objstruct_name:
 *                 error(pos, "Object struct name specification required for 'api' C class")
 *             if not typeobj_name:             # <<<<<<<<<<<<<<
 *                 error(pos, "Type object name specification required for 'api' C class")
 *     else:
 */
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_typeobj_name); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3398, __pyx_L1_error)
      __pyx_t_4 = ((!__pyx_t_2) != 0);
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":3399
 *                 error(pos, "Object struct name specification required for 'api' C class")
 *             if not typeobj_name:
 *                 error(pos, "Type object name specification required for 'api' C class")             # <<<<<<<<<<<<<<
 *     else:
 *         error(pos, "Invalid class visibility '%s'" % ctx.visibility)
 */
        __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
        __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Type_object_name_specification_r_2};
          __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3399, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_10);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_kp_u_Type_object_name_specification_r_2};
          __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3399, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_10);
        } else
        #endif
        {
          __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3399, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_INCREF(__pyx_v_pos);
          __Pyx_GIVEREF(__pyx_v_pos);
          PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_v_pos);
          __Pyx_INCREF(__pyx_kp_u_Type_object_name_specification_r_2);
          __Pyx_GIVEREF(__pyx_kp_u_Type_object_name_specification_r_2);
          PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_u_Type_object_name_specification_r_2);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3399, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "Cython/Compiler/Parsing.py":3398
 *             if not objstruct_name:
 *                 error(pos, "Object struct name specification required for 'api' C class")
 *             if not typeobj_name:             # <<<<<<<<<<<<<<
 *                 error(pos, "Type object name specification required for 'api' C class")
 *     else:
 */
      }

      /* "Cython/Compiler/Parsing.py":3395
 *             error(pos, "Type object name specification required for 'public' C class")
 *     elif ctx.visibility == 'private':
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             if not objstruct_name:
 *                 error(pos, "Object struct name specification required for 'api' C class")
 */
    }

    /* "Cython/Compiler/Parsing.py":3394
 *         if not typeobj_name:
 *             error(pos, "Type object name specification required for 'public' C class")
 *     elif ctx.visibility == 'private':             # <<<<<<<<<<<<<<
 *         if ctx.api:
 *             if not objstruct_name:
 */
    goto __pyx_L26;
  }

  /* "Cython/Compiler/Parsing.py":3401
 *                 error(pos, "Type object name specification required for 'api' C class")
 *     else:
 *         error(pos, "Invalid class visibility '%s'" % ctx.visibility)             # <<<<<<<<<<<<<<
 *     return Nodes.CClassDefNode(pos,
 *         visibility = ctx.visibility,
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_Invalid_class_visibility_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_t_5};
      __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3401, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_pos, __pyx_t_5};
      __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3401, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3401, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3401, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_L26:;

  /* "Cython/Compiler/Parsing.py":3402
 *     else:
 *         error(pos, "Invalid class visibility '%s'" % ctx.visibility)
 *     return Nodes.CClassDefNode(pos,             # <<<<<<<<<<<<<<
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CClassDefNode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":3403
 *         error(pos, "Invalid class visibility '%s'" % ctx.visibility)
 *     return Nodes.CClassDefNode(pos,
 *         visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *         typedef_flag = ctx.typedef_flag,
 *         api = ctx.api,
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_t_5) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3404
 *     return Nodes.CClassDefNode(pos,
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,             # <<<<<<<<<<<<<<
 *         api = ctx.api,
 *         module_name = ".".join(module_path),
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_typedef_flag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_typedef_flag, __pyx_t_5) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3405
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,
 *         api = ctx.api,             # <<<<<<<<<<<<<<
 *         module_name = ".".join(module_path),
 *         class_name = class_name,
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_t_5) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3406
 *         typedef_flag = ctx.typedef_flag,
 *         api = ctx.api,
 *         module_name = ".".join(module_path),             # <<<<<<<<<<<<<<
 *         class_name = class_name,
 *         as_name = as_name,
 */
  __pyx_t_5 = PyUnicode_Join(__pyx_kp_u__37, __pyx_v_module_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_module_name, __pyx_t_5) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3407
 *         api = ctx.api,
 *         module_name = ".".join(module_path),
 *         class_name = class_name,             # <<<<<<<<<<<<<<
 *         as_name = as_name,
 *         base_class_module = base_class_module,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_class_name, __pyx_v_class_name) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3408
 *         module_name = ".".join(module_path),
 *         class_name = class_name,
 *         as_name = as_name,             # <<<<<<<<<<<<<<
 *         base_class_module = base_class_module,
 *         base_class_name = base_class_name,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_as_name, __pyx_v_as_name) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3409
 *         class_name = class_name,
 *         as_name = as_name,
 *         base_class_module = base_class_module,             # <<<<<<<<<<<<<<
 *         base_class_name = base_class_name,
 *         objstruct_name = objstruct_name,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_class_module, __pyx_v_base_class_module) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3410
 *         as_name = as_name,
 *         base_class_module = base_class_module,
 *         base_class_name = base_class_name,             # <<<<<<<<<<<<<<
 *         objstruct_name = objstruct_name,
 *         typeobj_name = typeobj_name,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_class_name, __pyx_v_base_class_name) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3411
 *         base_class_module = base_class_module,
 *         base_class_name = base_class_name,
 *         objstruct_name = objstruct_name,             # <<<<<<<<<<<<<<
 *         typeobj_name = typeobj_name,
 *         in_pxd = ctx.level == 'module_pxd',
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_objstruct_name, __pyx_v_objstruct_name) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3412
 *         base_class_name = base_class_name,
 *         objstruct_name = objstruct_name,
 *         typeobj_name = typeobj_name,             # <<<<<<<<<<<<<<
 *         in_pxd = ctx.level == 'module_pxd',
 *         doc = doc,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_typeobj_name, __pyx_v_typeobj_name) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3413
 *         objstruct_name = objstruct_name,
 *         typeobj_name = typeobj_name,
 *         in_pxd = ctx.level == 'module_pxd',             # <<<<<<<<<<<<<<
 *         doc = doc,
 *         body = body)
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_5, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in_pxd, __pyx_t_8) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":3414
 *         typeobj_name = typeobj_name,
 *         in_pxd = ctx.level == 'module_pxd',
 *         doc = doc,             # <<<<<<<<<<<<<<
 *         body = body)
 * 
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3415
 *         in_pxd = ctx.level == 'module_pxd',
 *         doc = doc,
 *         body = body)             # <<<<<<<<<<<<<<
 * 
 * def p_c_class_options(s):
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 3403, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3402
 *     else:
 *         error(pos, "Invalid class visibility '%s'" % ctx.visibility)
 *     return Nodes.CClassDefNode(pos,             # <<<<<<<<<<<<<<
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,
 */
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3339
 * 
 * 
 * def p_c_class_definition(s, pos,  ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == 'class'
 *     s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_class_definition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_module_path);
  __Pyx_XDECREF(__pyx_v_class_name);
  __Pyx_XDECREF(__pyx_v_as_name);
  __Pyx_XDECREF(__pyx_v_objstruct_name);
  __Pyx_XDECREF(__pyx_v_typeobj_name);
  __Pyx_XDECREF(__pyx_v_base_class_module);
  __Pyx_XDECREF(__pyx_v_base_class_name);
  __Pyx_XDECREF(__pyx_v_base_class_path);
  __Pyx_XDECREF(__pyx_v_body_level);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3417
 *         body = body)
 * 
 * def p_c_class_options(s):             # <<<<<<<<<<<<<<
 *     objstruct_name = None
 *     typeobj_name = None
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_options(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_objstruct_name = NULL;
  PyObject *__pyx_v_typeobj_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect __pyx_t_3;
  __Pyx_RefNannySetupContext("p_c_class_options", 0);

  /* "Cython/Compiler/Parsing.py":3418
 * 
 * def p_c_class_options(s):
 *     objstruct_name = None             # <<<<<<<<<<<<<<
 *     typeobj_name = None
 *     s.expect('[')
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_objstruct_name = Py_None;

  /* "Cython/Compiler/Parsing.py":3419
 * def p_c_class_options(s):
 *     objstruct_name = None
 *     typeobj_name = None             # <<<<<<<<<<<<<<
 *     s.expect('[')
 *     while 1:
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_typeobj_name = Py_None;

  /* "Cython/Compiler/Parsing.py":3420
 *     objstruct_name = None
 *     typeobj_name = None
 *     s.expect('[')             # <<<<<<<<<<<<<<
 *     while 1:
 *         if s.sy != 'IDENT':
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__36, NULL); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 3420, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3421
 *     typeobj_name = None
 *     s.expect('[')
 *     while 1:             # <<<<<<<<<<<<<<
 *         if s.sy != 'IDENT':
 *             break
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":3422
 *     s.expect('[')
 *     while 1:
 *         if s.sy != 'IDENT':             # <<<<<<<<<<<<<<
 *             break
 *         if s.systring == 'object':
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3422, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3423
 *     while 1:
 *         if s.sy != 'IDENT':
 *             break             # <<<<<<<<<<<<<<
 *         if s.systring == 'object':
 *             s.next()
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":3422
 *     s.expect('[')
 *     while 1:
 *         if s.sy != 'IDENT':             # <<<<<<<<<<<<<<
 *             break
 *         if s.systring == 'object':
 */
    }

    /* "Cython/Compiler/Parsing.py":3424
 *         if s.sy != 'IDENT':
 *             break
 *         if s.systring == 'object':             # <<<<<<<<<<<<<<
 *             s.next()
 *             objstruct_name = p_ident(s)
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_object, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3424, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3425
 *             break
 *         if s.systring == 'object':
 *             s.next()             # <<<<<<<<<<<<<<
 *             objstruct_name = p_ident(s)
 *         elif s.systring == 'type':
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3425, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3426
 *         if s.systring == 'object':
 *             s.next()
 *             objstruct_name = p_ident(s)             # <<<<<<<<<<<<<<
 *         elif s.systring == 'type':
 *             s.next()
 */
      __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3426, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_objstruct_name, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3424
 *         if s.sy != 'IDENT':
 *             break
 *         if s.systring == 'object':             # <<<<<<<<<<<<<<
 *             s.next()
 *             objstruct_name = p_ident(s)
 */
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":3427
 *             s.next()
 *             objstruct_name = p_ident(s)
 *         elif s.systring == 'type':             # <<<<<<<<<<<<<<
 *             s.next()
 *             typeobj_name = p_ident(s)
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_type, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3427, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3428
 *             objstruct_name = p_ident(s)
 *         elif s.systring == 'type':
 *             s.next()             # <<<<<<<<<<<<<<
 *             typeobj_name = p_ident(s)
 *         if s.sy != ',':
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3428, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3429
 *         elif s.systring == 'type':
 *             s.next()
 *             typeobj_name = p_ident(s)             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
      __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_typeobj_name, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3427
 *             s.next()
 *             objstruct_name = p_ident(s)
 *         elif s.systring == 'type':             # <<<<<<<<<<<<<<
 *             s.next()
 *             typeobj_name = p_ident(s)
 */
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":3430
 *             s.next()
 *             typeobj_name = p_ident(s)
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3430, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3431
 *             typeobj_name = p_ident(s)
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     s.expect(']', "Expected 'object' or 'type'")
 */
      goto __pyx_L4_break;

      /* "Cython/Compiler/Parsing.py":3430
 *             s.next()
 *             typeobj_name = p_ident(s)
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    }

    /* "Cython/Compiler/Parsing.py":3432
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     s.expect(']', "Expected 'object' or 'type'")
 *     return objstruct_name, typeobj_name
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":3433
 *             break
 *         s.next()
 *     s.expect(']', "Expected 'object' or 'type'")             # <<<<<<<<<<<<<<
 *     return objstruct_name, typeobj_name
 * 
 */
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.message = __pyx_kp_u_Expected_object_or_type;
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, &__pyx_t_3); if (unlikely(__pyx_t_1 == -2)) __PYX_ERR(0, 3433, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3434
 *         s.next()
 *     s.expect(']', "Expected 'object' or 'type'")
 *     return objstruct_name, typeobj_name             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_objstruct_name);
  __Pyx_GIVEREF(__pyx_v_objstruct_name);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_objstruct_name);
  __Pyx_INCREF(__pyx_v_typeobj_name);
  __Pyx_GIVEREF(__pyx_v_typeobj_name);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_typeobj_name);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3417
 *         body = body)
 * 
 * def p_c_class_options(s):             # <<<<<<<<<<<<<<
 *     objstruct_name = None
 *     typeobj_name = None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_c_class_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_objstruct_name);
  __Pyx_XDECREF(__pyx_v_typeobj_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3437
 * 
 * 
 * def p_property_decl(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next()  # 'property'
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_property_decl(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("p_property_decl", 0);

  /* "Cython/Compiler/Parsing.py":3438
 * 
 * def p_property_decl(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()  # 'property'
 *     name = p_ident(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3439
 * def p_property_decl(s):
 *     pos = s.position()
 *     s.next()  # 'property'             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     doc, body = p_suite_with_docstring(
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3440
 *     pos = s.position()
 *     s.next()  # 'property'
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     doc, body = p_suite_with_docstring(
 *         s, Ctx(level='property'), with_doc_only=True)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3442
 *     name = p_ident(s)
 *     doc, body = p_suite_with_docstring(
 *         s, Ctx(level='property'), with_doc_only=True)             # <<<<<<<<<<<<<<
 *     return Nodes.PropertyNode(pos, name=name, doc=doc, body=body)
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_level, __pyx_n_u_property) < 0) __PYX_ERR(0, 3442, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3441
 *     s.next()  # 'property'
 *     name = p_ident(s)
 *     doc, body = p_suite_with_docstring(             # <<<<<<<<<<<<<<
 *         s, Ctx(level='property'), with_doc_only=True)
 *     return Nodes.PropertyNode(pos, name=name, doc=doc, body=body)
 */
  __pyx_t_4.__pyx_n = 1;
  __pyx_t_4.with_doc_only = 1;
  __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring(__pyx_v_s, __pyx_t_3, &__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(__pyx_t_2 != Py_None)) {
    PyObject* sequence = __pyx_t_2;
    #if !CYTHON_COMPILING_IN_PYPY
    Py_ssize_t size = Py_SIZE(sequence);
    #else
    Py_ssize_t size = PySequence_Size(sequence);
    #endif
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 3441, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_1);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3441, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3441, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3441, __pyx_L1_error)
  }
  __pyx_v_doc = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3443
 *     doc, body = p_suite_with_docstring(
 *         s, Ctx(level='property'), with_doc_only=True)
 *     return Nodes.PropertyNode(pos, name=name, doc=doc, body=body)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PropertyNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 3443, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3443, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 3443, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3437
 * 
 * 
 * def p_property_decl(s):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 *     s.next()  # 'property'
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_property_decl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3446
 * 
 * 
 * def p_ignorable_statement(s):             # <<<<<<<<<<<<<<
 *     """
 *     Parses any kind of ignorable statement that is allowed in .pxd files.
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_ignorable_statement(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_string_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("p_ignorable_statement", 0);

  /* "Cython/Compiler/Parsing.py":3450
 *     Parses any kind of ignorable statement that is allowed in .pxd files.
 *     """
 *     if s.sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         string_node = p_atom(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3450, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3451
 *     """
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         string_node = p_atom(s)
 *         s.expect_newline("Syntax error in string", ignore_semicolon=True)
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_pos = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3452
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 *         string_node = p_atom(s)             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in string", ignore_semicolon=True)
 *         return Nodes.ExprStatNode(pos, expr=string_node)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_atom(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3452, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_string_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3453
 *         pos = s.position()
 *         string_node = p_atom(s)
 *         s.expect_newline("Syntax error in string", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *         return Nodes.ExprStatNode(pos, expr=string_node)
 *     return None
 */
    __pyx_t_3.__pyx_n = 2;
    __pyx_t_3.message = __pyx_kp_u_Syntax_error_in_string;
    __pyx_t_3.ignore_semicolon = 1;
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3454
 *         string_node = p_atom(s)
 *         s.expect_newline("Syntax error in string", ignore_semicolon=True)
 *         return Nodes.ExprStatNode(pos, expr=string_node)             # <<<<<<<<<<<<<<
 *     return None
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_expr, __pyx_v_string_node) < 0) __PYX_ERR(0, 3454, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3450
 *     Parses any kind of ignorable statement that is allowed in .pxd files.
 *     """
 *     if s.sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         string_node = p_atom(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":3455
 *         s.expect_newline("Syntax error in string", ignore_semicolon=True)
 *         return Nodes.ExprStatNode(pos, expr=string_node)
 *     return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_None);
  __pyx_r = Py_None;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3446
 * 
 * 
 * def p_ignorable_statement(s):             # <<<<<<<<<<<<<<
 *     """
 *     Parses any kind of ignorable statement that is allowed in .pxd files.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_ignorable_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_string_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3458
 * 
 * 
 * def p_doc_string(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_doc_string(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_kind = NULL;
  PyObject *__pyx_v_bytes_result = NULL;
  PyObject *__pyx_v_unicode_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  __Pyx_RefNannySetupContext("p_doc_string", 0);

  /* "Cython/Compiler/Parsing.py":3459
 * 
 * def p_doc_string(s):
 *     if s.sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3459, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3460
 * def p_doc_string(s):
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         s.expect_newline("Syntax error in doc string", ignore_semicolon=True)
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_pos = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3461
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in doc string", ignore_semicolon=True)
 *         if kind in ('u', ''):
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3461, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
      PyObject* sequence = __pyx_t_2;
      #if !CYTHON_COMPILING_IN_PYPY
      Py_ssize_t size = Py_SIZE(sequence);
      #else
      Py_ssize_t size = PySequence_Size(sequence);
      #endif
      if (unlikely(size != 3)) {
        if (size > 3) __Pyx_RaiseTooManyValuesError(3);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3461, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 2; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(0, 3461, __pyx_L1_error)
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L5_unpacking_done;
      __pyx_L4_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3461, __pyx_L1_error)
      __pyx_L5_unpacking_done:;
    }
    __pyx_v_kind = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_bytes_result = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_unicode_result = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3462
 *         pos = s.position()
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         s.expect_newline("Syntax error in doc string", ignore_semicolon=True)             # <<<<<<<<<<<<<<
 *         if kind in ('u', ''):
 *             return unicode_result
 */
    __pyx_t_8.__pyx_n = 2;
    __pyx_t_8.message = __pyx_kp_u_Syntax_error_in_doc_string;
    __pyx_t_8.ignore_semicolon = 1;
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3463
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         s.expect_newline("Syntax error in doc string", ignore_semicolon=True)
 *         if kind in ('u', ''):             # <<<<<<<<<<<<<<
 *             return unicode_result
 *         warning(pos, "Python 3 requires docstrings to be unicode strings")
 */
    __Pyx_INCREF(__pyx_v_kind);
    __pyx_t_2 = __pyx_v_kind;
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3463, __pyx_L1_error)
    if (!__pyx_t_9) {
    } else {
      __pyx_t_1 = __pyx_t_9;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_kp_u__50, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3463, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_9;
    __pyx_L7_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = (__pyx_t_1 != 0);
    if (__pyx_t_9) {

      /* "Cython/Compiler/Parsing.py":3464
 *         s.expect_newline("Syntax error in doc string", ignore_semicolon=True)
 *         if kind in ('u', ''):
 *             return unicode_result             # <<<<<<<<<<<<<<
 *         warning(pos, "Python 3 requires docstrings to be unicode strings")
 *         return bytes_result
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_unicode_result);
      __pyx_r = __pyx_v_unicode_result;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":3463
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         s.expect_newline("Syntax error in doc string", ignore_semicolon=True)
 *         if kind in ('u', ''):             # <<<<<<<<<<<<<<
 *             return unicode_result
 *         warning(pos, "Python 3 requires docstrings to be unicode strings")
 */
    }

    /* "Cython/Compiler/Parsing.py":3465
 *         if kind in ('u', ''):
 *             return unicode_result
 *         warning(pos, "Python 3 requires docstrings to be unicode strings")             # <<<<<<<<<<<<<<
 *         return bytes_result
 *     else:
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_warning);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_warning; __pyx_t_4 = NULL;
    __pyx_t_10 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_10 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_pos, __pyx_kp_u_Python_3_requires_docstrings_to};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3465, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_pos, __pyx_kp_u_Python_3_requires_docstrings_to};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3465, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3465, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_10, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Python_3_requires_docstrings_to);
      __Pyx_GIVEREF(__pyx_kp_u_Python_3_requires_docstrings_to);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_10, __pyx_kp_u_Python_3_requires_docstrings_to);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3465, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3466
 *             return unicode_result
 *         warning(pos, "Python 3 requires docstrings to be unicode strings")
 *         return bytes_result             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_bytes_result);
    __pyx_r = __pyx_v_bytes_result;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3459
 * 
 * def p_doc_string(s):
 *     if s.sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":3468
 *         return bytes_result
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":3458
 * 
 * 
 * def p_doc_string(s):             # <<<<<<<<<<<<<<
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_doc_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XDECREF(__pyx_v_bytes_result);
  __Pyx_XDECREF(__pyx_v_unicode_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3471
 * 
 * 
 * def _extract_docstring(node):             # <<<<<<<<<<<<<<
 *     """
 *     Extract a docstring from a statement or from the first statement
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing__extract_docstring(PyObject *__pyx_v_node) {
  PyObject *__pyx_v_doc_node = NULL;
  PyObject *__pyx_v_stats = NULL;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("_extract_docstring", 0);
  __Pyx_INCREF(__pyx_v_node);

  /* "Cython/Compiler/Parsing.py":3477
 *     (plain-docstring or None, node).
 *     """
 *     doc_node = None             # <<<<<<<<<<<<<<
 *     if node is None:
 *         pass
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_doc_node = Py_None;

  /* "Cython/Compiler/Parsing.py":3478
 *     """
 *     doc_node = None
 *     if node is None:             # <<<<<<<<<<<<<<
 *         pass
 *     elif isinstance(node, Nodes.ExprStatNode):
 */
  __pyx_t_1 = (__pyx_v_node == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":3480
 *     if node is None:
 *         pass
 *     elif isinstance(node, Nodes.ExprStatNode):             # <<<<<<<<<<<<<<
 *         if node.expr.is_string_literal:
 *             doc_node = node.expr
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_node, __pyx_t_3); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 3480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3481
 *         pass
 *     elif isinstance(node, Nodes.ExprStatNode):
 *         if node.expr.is_string_literal:             # <<<<<<<<<<<<<<
 *             doc_node = node.expr
 *             node = Nodes.StatListNode(node.pos, stats=[])
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_expr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_string_literal); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3481, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3482
 *     elif isinstance(node, Nodes.ExprStatNode):
 *         if node.expr.is_string_literal:
 *             doc_node = node.expr             # <<<<<<<<<<<<<<
 *             node = Nodes.StatListNode(node.pos, stats=[])
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_expr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3482, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_doc_node, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3483
 *         if node.expr.is_string_literal:
 *             doc_node = node.expr
 *             node = Nodes.StatListNode(node.pos, stats=[])             # <<<<<<<<<<<<<<
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:
 *         stats = node.stats
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stats, __pyx_t_6) < 0) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF_SET(__pyx_v_node, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3481
 *         pass
 *     elif isinstance(node, Nodes.ExprStatNode):
 *         if node.expr.is_string_literal:             # <<<<<<<<<<<<<<
 *             doc_node = node.expr
 *             node = Nodes.StatListNode(node.pos, stats=[])
 */
    }

    /* "Cython/Compiler/Parsing.py":3480
 *     if node is None:
 *         pass
 *     elif isinstance(node, Nodes.ExprStatNode):             # <<<<<<<<<<<<<<
 *         if node.expr.is_string_literal:
 *             doc_node = node.expr
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":3484
 *             doc_node = node.expr
 *             node = Nodes.StatListNode(node.pos, stats=[])
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:             # <<<<<<<<<<<<<<
 *         stats = node.stats
 *         if isinstance(stats[0], Nodes.ExprStatNode):
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_node, __pyx_t_6); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 3484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_7 = (__pyx_t_2 != 0);
  if (__pyx_t_7) {
  } else {
    __pyx_t_1 = __pyx_t_7;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_stats); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_1 = __pyx_t_7;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3485
 *             node = Nodes.StatListNode(node.pos, stats=[])
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:
 *         stats = node.stats             # <<<<<<<<<<<<<<
 *         if isinstance(stats[0], Nodes.ExprStatNode):
 *             if stats[0].expr.is_string_literal:
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_stats); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3485, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_stats = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3486
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:
 *         stats = node.stats
 *         if isinstance(stats[0], Nodes.ExprStatNode):             # <<<<<<<<<<<<<<
 *             if stats[0].expr.is_string_literal:
 *                 doc_node = stats[0].expr
 */
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_IsInstance(__pyx_t_6, __pyx_t_3); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(0, 3486, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = (__pyx_t_1 != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3487
 *         stats = node.stats
 *         if isinstance(stats[0], Nodes.ExprStatNode):
 *             if stats[0].expr.is_string_literal:             # <<<<<<<<<<<<<<
 *                 doc_node = stats[0].expr
 *                 del stats[0]
 */
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3487, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_expr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3487, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_is_string_literal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3487, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3487, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":3488
 *         if isinstance(stats[0], Nodes.ExprStatNode):
 *             if stats[0].expr.is_string_literal:
 *                 doc_node = stats[0].expr             # <<<<<<<<<<<<<<
 *                 del stats[0]
 * 
 */
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3488, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_expr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3488, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF_SET(__pyx_v_doc_node, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3489
 *             if stats[0].expr.is_string_literal:
 *                 doc_node = stats[0].expr
 *                 del stats[0]             # <<<<<<<<<<<<<<
 * 
 *     if doc_node is None:
 */
        if (unlikely(__Pyx_DelItemInt(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 3489, __pyx_L1_error)

        /* "Cython/Compiler/Parsing.py":3487
 *         stats = node.stats
 *         if isinstance(stats[0], Nodes.ExprStatNode):
 *             if stats[0].expr.is_string_literal:             # <<<<<<<<<<<<<<
 *                 doc_node = stats[0].expr
 *                 del stats[0]
 */
      }

      /* "Cython/Compiler/Parsing.py":3486
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:
 *         stats = node.stats
 *         if isinstance(stats[0], Nodes.ExprStatNode):             # <<<<<<<<<<<<<<
 *             if stats[0].expr.is_string_literal:
 *                 doc_node = stats[0].expr
 */
    }

    /* "Cython/Compiler/Parsing.py":3484
 *             doc_node = node.expr
 *             node = Nodes.StatListNode(node.pos, stats=[])
 *     elif isinstance(node, Nodes.StatListNode) and node.stats:             # <<<<<<<<<<<<<<
 *         stats = node.stats
 *         if isinstance(stats[0], Nodes.ExprStatNode):
 */
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3491
 *                 del stats[0]
 * 
 *     if doc_node is None:             # <<<<<<<<<<<<<<
 *         doc = None
 *     elif isinstance(doc_node, ExprNodes.BytesNode):
 */
  __pyx_t_7 = (__pyx_v_doc_node == Py_None);
  __pyx_t_1 = (__pyx_t_7 != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3492
 * 
 *     if doc_node is None:
 *         doc = None             # <<<<<<<<<<<<<<
 *     elif isinstance(doc_node, ExprNodes.BytesNode):
 *         warning(node.pos,
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_doc = Py_None;

    /* "Cython/Compiler/Parsing.py":3491
 *                 del stats[0]
 * 
 *     if doc_node is None:             # <<<<<<<<<<<<<<
 *         doc = None
 *     elif isinstance(doc_node, ExprNodes.BytesNode):
 */
    goto __pyx_L9;
  }

  /* "Cython/Compiler/Parsing.py":3493
 *     if doc_node is None:
 *         doc = None
 *     elif isinstance(doc_node, ExprNodes.BytesNode):             # <<<<<<<<<<<<<<
 *         warning(node.pos,
 *                 "Python 3 requires docstrings to be unicode strings")
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BytesNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_IsInstance(__pyx_v_doc_node, __pyx_t_6); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_7 = (__pyx_t_1 != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":3494
 *         doc = None
 *     elif isinstance(doc_node, ExprNodes.BytesNode):
 *         warning(node.pos,             # <<<<<<<<<<<<<<
 *                 "Python 3 requires docstrings to be unicode strings")
 *         doc = doc_node.value
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3494, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_warning);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_warning; __pyx_t_4 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_kp_u_Python_3_requires_docstrings_to};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3494, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_kp_u_Python_3_requires_docstrings_to};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3494, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3494, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
      __Pyx_INCREF(__pyx_kp_u_Python_3_requires_docstrings_to);
      __Pyx_GIVEREF(__pyx_kp_u_Python_3_requires_docstrings_to);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_u_Python_3_requires_docstrings_to);
      __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3494, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3496
 *         warning(node.pos,
 *                 "Python 3 requires docstrings to be unicode strings")
 *         doc = doc_node.value             # <<<<<<<<<<<<<<
 *     elif isinstance(doc_node, ExprNodes.StringNode):
 *         doc = doc_node.unicode_value
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_doc_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3493
 *     if doc_node is None:
 *         doc = None
 *     elif isinstance(doc_node, ExprNodes.BytesNode):             # <<<<<<<<<<<<<<
 *         warning(node.pos,
 *                 "Python 3 requires docstrings to be unicode strings")
 */
    goto __pyx_L9;
  }

  /* "Cython/Compiler/Parsing.py":3497
 *                 "Python 3 requires docstrings to be unicode strings")
 *         doc = doc_node.value
 *     elif isinstance(doc_node, ExprNodes.StringNode):             # <<<<<<<<<<<<<<
 *         doc = doc_node.unicode_value
 *         if doc is None:
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_StringNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_IsInstance(__pyx_v_doc_node, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 3497, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_1 = (__pyx_t_7 != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3498
 *         doc = doc_node.value
 *     elif isinstance(doc_node, ExprNodes.StringNode):
 *         doc = doc_node.unicode_value             # <<<<<<<<<<<<<<
 *         if doc is None:
 *             doc = doc_node.value
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_doc_node, __pyx_n_s_unicode_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3499
 *     elif isinstance(doc_node, ExprNodes.StringNode):
 *         doc = doc_node.unicode_value
 *         if doc is None:             # <<<<<<<<<<<<<<
 *             doc = doc_node.value
 *     else:
 */
    __pyx_t_1 = (__pyx_v_doc == Py_None);
    __pyx_t_7 = (__pyx_t_1 != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3500
 *         doc = doc_node.unicode_value
 *         if doc is None:
 *             doc = doc_node.value             # <<<<<<<<<<<<<<
 *     else:
 *         doc = doc_node.value
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_doc_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3500, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_doc, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3499
 *     elif isinstance(doc_node, ExprNodes.StringNode):
 *         doc = doc_node.unicode_value
 *         if doc is None:             # <<<<<<<<<<<<<<
 *             doc = doc_node.value
 *     else:
 */
    }

    /* "Cython/Compiler/Parsing.py":3497
 *                 "Python 3 requires docstrings to be unicode strings")
 *         doc = doc_node.value
 *     elif isinstance(doc_node, ExprNodes.StringNode):             # <<<<<<<<<<<<<<
 *         doc = doc_node.unicode_value
 *         if doc is None:
 */
    goto __pyx_L9;
  }

  /* "Cython/Compiler/Parsing.py":3502
 *             doc = doc_node.value
 *     else:
 *         doc = doc_node.value             # <<<<<<<<<<<<<<
 *     return doc, node
 * 
 */
  /*else*/ {
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_doc_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3502, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L9:;

  /* "Cython/Compiler/Parsing.py":3503
 *     else:
 *         doc = doc_node.value
 *     return doc, node             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_doc);
  __Pyx_GIVEREF(__pyx_v_doc);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_doc);
  __Pyx_INCREF(__pyx_v_node);
  __Pyx_GIVEREF(__pyx_v_node);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_node);
  __pyx_r = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3471
 * 
 * 
 * def _extract_docstring(node):             # <<<<<<<<<<<<<<
 *     """
 *     Extract a docstring from a statement or from the first statement
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("Cython.Compiler.Parsing._extract_docstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_doc_node);
  __Pyx_XDECREF(__pyx_v_stats);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3506
 * 
 * 
 * def p_code(s, level=None, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_9p_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_code(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_code *__pyx_optional_args) {
  PyObject *__pyx_v_level = ((PyObject *)Py_None);
  PyObject *__pyx_v_ctx = __pyx_k__134;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_code", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_level = __pyx_optional_args->level;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ctx = __pyx_optional_args->ctx;
      }
    }
  }

  /* "Cython/Compiler/Parsing.py":3507
 * 
 * def p_code(s, level=None, ctx=Ctx):
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)             # <<<<<<<<<<<<<<
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_v_level) < 0) __PYX_ERR(0, 3507, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.first_statement = 1;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(__pyx_v_s, __pyx_t_2, &__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3508
 * def p_code(s, level=None, ctx=Ctx):
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':             # <<<<<<<<<<<<<<
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3508, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3509
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (             # <<<<<<<<<<<<<<
 *             repr(s.sy), repr(s.systring)))
 *     return body
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "Cython/Compiler/Parsing.py":3510
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))             # <<<<<<<<<<<<<<
 *     return body
 * 
 */
    __pyx_t_5 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = PyObject_Repr(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_7 = PyObject_Repr(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":3509
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (             # <<<<<<<<<<<<<<
 *             repr(s.sy), repr(s.systring)))
 *     return body
 */
    __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_Syntax_error_in_statement_s_s, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    if (!__pyx_t_5) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_7);
        __pyx_t_7 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3508
 * def p_code(s, level=None, ctx=Ctx):
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':             # <<<<<<<<<<<<<<
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 */
  }

  /* "Cython/Compiler/Parsing.py":3511
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 *     return body             # <<<<<<<<<<<<<<
 * 
 * _match_compiler_directive_comment = cython.declare(object, re.compile(
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_body);
  __pyx_r = __pyx_v_body;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3506
 * 
 * 
 * def p_code(s, level=None, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_9p_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_9p_code = {"p_code", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_9p_code, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_9p_code(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_ctx = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_code (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_level,&__pyx_n_s_ctx,0};
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = __pyx_k__134;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ctx);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "p_code") < 0)) __PYX_ERR(0, 3506, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_s = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)values[0]);
    __pyx_v_level = values[1];
    __pyx_v_ctx = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("p_code", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3506, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s), __pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner, 1, "s", 0))) __PYX_ERR(0, 3506, __pyx_L1_error)
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_8p_code(__pyx_self, __pyx_v_s, __pyx_v_level, __pyx_v_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_8p_code(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_level, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_code __pyx_t_2;
  __Pyx_RefNannySetupContext("p_code", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.level = __pyx_v_level;
  __pyx_t_2.ctx = __pyx_v_ctx;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_code(__pyx_v_s, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3516
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)
 * 
 * def p_compiler_directive_comments(s):             # <<<<<<<<<<<<<<
 *     result = {}
 *     while s.sy == 'commentline':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_compiler_directive_comments(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_directives = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  __Pyx_RefNannySetupContext("p_compiler_directive_comments", 0);

  /* "Cython/Compiler/Parsing.py":3517
 * 
 * def p_compiler_directive_comments(s):
 *     result = {}             # <<<<<<<<<<<<<<
 *     while s.sy == 'commentline':
 *         m = _match_compiler_directive_comment(s.systring)
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3518
 * def p_compiler_directive_comments(s):
 *     result = {}
 *     while s.sy == 'commentline':             # <<<<<<<<<<<<<<
 *         m = _match_compiler_directive_comment(s.systring)
 *         if m:
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_commentline, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3518, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":3519
 *     result = {}
 *     while s.sy == 'commentline':
 *         m = _match_compiler_directive_comment(s.systring)             # <<<<<<<<<<<<<<
 *         if m:
 *             directives = m.group(1).strip()
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment);
    __pyx_t_3 = __pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment; __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    if (!__pyx_t_4) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_s->systring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3519, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_s->systring};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3519, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_s->systring};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3519, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3519, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_s->systring);
        __Pyx_GIVEREF(__pyx_v_s->systring);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_s->systring);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3519, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3520
 *     while s.sy == 'commentline':
 *         m = _match_compiler_directive_comment(s.systring)
 *         if m:             # <<<<<<<<<<<<<<
 *             directives = m.group(1).strip()
 *             try:
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3520, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3521
 *         m = _match_compiler_directive_comment(s.systring)
 *         if m:
 *             directives = m.group(1).strip()             # <<<<<<<<<<<<<<
 *             try:
 *                 result.update(Options.parse_directive_list(
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_group); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__135, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_strip); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      if (__pyx_t_5) {
        __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3521, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else {
        __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3521, __pyx_L1_error)
      }
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_directives, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3522
 *         if m:
 *             directives = m.group(1).strip()
 *             try:             # <<<<<<<<<<<<<<
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 */
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "Cython/Compiler/Parsing.py":3523
 *             directives = m.group(1).strip()
 *             try:
 *                 result.update(Options.parse_directive_list(             # <<<<<<<<<<<<<<
 *                     directives, ignore_unknown=True))
 *             except ValueError as e:
 */
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3523, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Options, __pyx_n_s_parse_directive_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3523, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_5);

          /* "Cython/Compiler/Parsing.py":3524
 *             try:
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))             # <<<<<<<<<<<<<<
 *             except ValueError as e:
 *                 s.error(e.args[0], fatal=False)
 */
          __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3523, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_v_directives);
          __Pyx_GIVEREF(__pyx_v_directives);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_directives);
          __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3524, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_ignore_unknown, Py_True) < 0) __PYX_ERR(0, 3524, __pyx_L6_error)

          /* "Cython/Compiler/Parsing.py":3523
 *             directives = m.group(1).strip()
 *             try:
 *                 result.update(Options.parse_directive_list(             # <<<<<<<<<<<<<<
 *                     directives, ignore_unknown=True))
 *             except ValueError as e:
 */
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3523, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_9)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_9);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          if (!__pyx_t_9) {
            __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3523, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_GOTREF(__pyx_t_1);
          } else {
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_3)) {
              PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_10};
              __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3523, __pyx_L6_error)
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
              PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_10};
              __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3523, __pyx_L6_error)
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            } else
            #endif
            {
              __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3523, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL;
              __Pyx_GIVEREF(__pyx_t_10);
              PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_10);
              __pyx_t_10 = 0;
              __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3523, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":3522
 *         if m:
 *             directives = m.group(1).strip()
 *             try:             # <<<<<<<<<<<<<<
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L13_try_end;
        __pyx_L6_error:;
        __Pyx_PyThreadState_assign
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":3525
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 *             except ValueError as e:             # <<<<<<<<<<<<<<
 *                 s.error(e.args[0], fatal=False)
 *         s.next()
 */
        __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError);
        if (__pyx_t_11) {
          __Pyx_AddTraceback("Cython.Compiler.Parsing.p_compiler_directive_comments", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(0, 3525, __pyx_L8_except_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __pyx_v_e = __pyx_t_3;
          /*try:*/ {

            /* "Cython/Compiler/Parsing.py":3526
 *                     directives, ignore_unknown=True))
 *             except ValueError as e:
 *                 s.error(e.args[0], fatal=False)             # <<<<<<<<<<<<<<
 *         s.next()
 *     return result
 */
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3526, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_args); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3526, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3526, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3526, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3526, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_fatal, Py_False) < 0) __PYX_ERR(0, 3526, __pyx_L19_error)
            __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3526, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }

          /* "Cython/Compiler/Parsing.py":3525
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 *             except ValueError as e:             # <<<<<<<<<<<<<<
 *                 s.error(e.args[0], fatal=False)
 *         s.next()
 */
          /*finally:*/ {
            /*normal exit:*/{
              __Pyx_DECREF(__pyx_v_e);
              __pyx_v_e = NULL;
              goto __pyx_L20;
            }
            /*exception exit:*/{
              __Pyx_PyThreadState_declare
              __pyx_L19_error:;
              __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
              __Pyx_PyThreadState_assign
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
              if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_20);
              __pyx_t_11 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
              {
                __Pyx_DECREF(__pyx_v_e);
                __pyx_v_e = NULL;
              }
              __Pyx_PyThreadState_assign
              if (PY_MAJOR_VERSION >= 3) {
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_XGIVEREF(__pyx_t_20);
                __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
              }
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
              __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
              __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
              goto __pyx_L8_except_error;
            }
            __pyx_L20:;
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L7_exception_handled;
        }
        goto __pyx_L8_except_error;
        __pyx_L8_except_error:;

        /* "Cython/Compiler/Parsing.py":3522
 *         if m:
 *             directives = m.group(1).strip()
 *             try:             # <<<<<<<<<<<<<<
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 */
        __Pyx_PyThreadState_assign
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L7_exception_handled:;
        __Pyx_PyThreadState_assign
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L13_try_end:;
      }

      /* "Cython/Compiler/Parsing.py":3520
 *     while s.sy == 'commentline':
 *         m = _match_compiler_directive_comment(s.systring)
 *         if m:             # <<<<<<<<<<<<<<
 *             directives = m.group(1).strip()
 *             try:
 */
    }

    /* "Cython/Compiler/Parsing.py":3527
 *             except ValueError as e:
 *                 s.error(e.args[0], fatal=False)
 *         s.next()             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "Cython/Compiler/Parsing.py":3528
 *                 s.error(e.args[0], fatal=False)
 *         s.next()
 *     return result             # <<<<<<<<<<<<<<
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3516
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)
 * 
 * def p_compiler_directive_comments(s):             # <<<<<<<<<<<<<<
 *     result = {}
 *     while s.sy == 'commentline':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_compiler_directive_comments", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_directives);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3530
 *     return result
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 * 
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_11p_module(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_module(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pxd, PyObject *__pyx_v_full_module_name, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_module *__pyx_optional_args) {
  PyObject *__pyx_v_ctx = __pyx_k__136;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_directive_comments = NULL;
  PyObject *__pyx_v_doc = NULL;
  PyObject *__pyx_v_level = NULL;
  PyObject *__pyx_v_body = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list __pyx_t_8;
  __Pyx_RefNannySetupContext("p_module", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ctx = __pyx_optional_args->ctx;
    }
  }

  /* "Cython/Compiler/Parsing.py":3531
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 * 
 *     directive_comments = p_compiler_directive_comments(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3533
 *     pos = s.position()
 * 
 *     directive_comments = p_compiler_directive_comments(s)             # <<<<<<<<<<<<<<
 *     s.parse_comments = False
 * 
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_compiler_directive_comments(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_directive_comments = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3534
 * 
 *     directive_comments = p_compiler_directive_comments(s)
 *     s.parse_comments = False             # <<<<<<<<<<<<<<
 * 
 *     if 'language_level' in directive_comments:
 */
  __pyx_v_s->parse_comments = 0;

  /* "Cython/Compiler/Parsing.py":3536
 *     s.parse_comments = False
 * 
 *     if 'language_level' in directive_comments:             # <<<<<<<<<<<<<<
 *         s.context.set_language_level(directive_comments['language_level'])
 * 
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_language_level, __pyx_v_directive_comments, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3536, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3537
 * 
 *     if 'language_level' in directive_comments:
 *         s.context.set_language_level(directive_comments['language_level'])             # <<<<<<<<<<<<<<
 * 
 *     doc = p_doc_string(s)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_set_language_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetItem(__pyx_v_directive_comments, __pyx_n_u_language_level); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_6) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3537, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3537, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3537, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3537, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL;
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5);
        __pyx_t_5 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3537, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3536
 *     s.parse_comments = False
 * 
 *     if 'language_level' in directive_comments:             # <<<<<<<<<<<<<<
 *         s.context.set_language_level(directive_comments['language_level'])
 * 
 */
  }

  /* "Cython/Compiler/Parsing.py":3539
 *         s.context.set_language_level(directive_comments['language_level'])
 * 
 *     doc = p_doc_string(s)             # <<<<<<<<<<<<<<
 *     if pxd:
 *         level = 'module_pxd'
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_doc_string(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_doc = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3540
 * 
 *     doc = p_doc_string(s)
 *     if pxd:             # <<<<<<<<<<<<<<
 *         level = 'module_pxd'
 *     else:
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_pxd); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3540, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3541
 *     doc = p_doc_string(s)
 *     if pxd:
 *         level = 'module_pxd'             # <<<<<<<<<<<<<<
 *     else:
 *         level = 'module'
 */
    __Pyx_INCREF(__pyx_n_u_module_pxd);
    __pyx_v_level = __pyx_n_u_module_pxd;

    /* "Cython/Compiler/Parsing.py":3540
 * 
 *     doc = p_doc_string(s)
 *     if pxd:             # <<<<<<<<<<<<<<
 *         level = 'module_pxd'
 *     else:
 */
    goto __pyx_L4;
  }

  /* "Cython/Compiler/Parsing.py":3543
 *         level = 'module_pxd'
 *     else:
 *         level = 'module'             # <<<<<<<<<<<<<<
 * 
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_n_u_module);
    __pyx_v_level = __pyx_n_u_module;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":3545
 *         level = 'module'
 * 
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)             # <<<<<<<<<<<<<<
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_v_level) < 0) __PYX_ERR(0, 3545, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.first_statement = 1;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(__pyx_v_s, __pyx_t_4, &__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3546
 * 
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)
 *     if s.sy != 'EOF':             # <<<<<<<<<<<<<<
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3546, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3547
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (             # <<<<<<<<<<<<<<
 *             repr(s.sy), repr(s.systring)))
 *     return ModuleNode(pos, doc = doc, body = body,
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":3548
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))             # <<<<<<<<<<<<<<
 *     return ModuleNode(pos, doc = doc, body = body,
 *                       full_module_name = full_module_name,
 */
    __pyx_t_7 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_5 = PyObject_Repr(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_6 = PyObject_Repr(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3547
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (             # <<<<<<<<<<<<<<
 *             repr(s.sy), repr(s.systring)))
 *     return ModuleNode(pos, doc = doc, body = body,
 */
    __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_Syntax_error_in_statement_s_s, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3547, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3547, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_t_6};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3547, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3547, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3547, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3546
 * 
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)
 *     if s.sy != 'EOF':             # <<<<<<<<<<<<<<
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 */
  }

  /* "Cython/Compiler/Parsing.py":3549
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 *     return ModuleNode(pos, doc = doc, body = body,             # <<<<<<<<<<<<<<
 *                       full_module_name = full_module_name,
 *                       directive_comments = directive_comments)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_doc, __pyx_v_doc) < 0) __PYX_ERR(0, 3549, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 3549, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3550
 *             repr(s.sy), repr(s.systring)))
 *     return ModuleNode(pos, doc = doc, body = body,
 *                       full_module_name = full_module_name,             # <<<<<<<<<<<<<<
 *                       directive_comments = directive_comments)
 * 
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_full_module_name, __pyx_v_full_module_name) < 0) __PYX_ERR(0, 3549, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3551
 *     return ModuleNode(pos, doc = doc, body = body,
 *                       full_module_name = full_module_name,
 *                       directive_comments = directive_comments)             # <<<<<<<<<<<<<<
 * 
 * def p_template_definition(s):
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_directive_comments, __pyx_v_directive_comments) < 0) __PYX_ERR(0, 3549, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3549
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))
 *     return ModuleNode(pos, doc = doc, body = body,             # <<<<<<<<<<<<<<
 *                       full_module_name = full_module_name,
 *                       directive_comments = directive_comments)
 */
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3530
 *     return result
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_module", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_directive_comments);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_level);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_11p_module(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_11p_module = {"p_module", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_11p_module, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_11p_module(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s = 0;
  PyObject *__pyx_v_pxd = 0;
  PyObject *__pyx_v_full_module_name = 0;
  PyObject *__pyx_v_ctx = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_module (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_pxd,&__pyx_n_s_full_module_name,&__pyx_n_s_ctx,0};
    PyObject* values[4] = {0,0,0,0};
    values[3] = __pyx_k__136;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pxd)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("p_module", 0, 3, 4, 1); __PYX_ERR(0, 3530, __pyx_L3_error)
        }
        case  2:
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_full_module_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("p_module", 0, 3, 4, 2); __PYX_ERR(0, 3530, __pyx_L3_error)
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ctx);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "p_module") < 0)) __PYX_ERR(0, 3530, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_s = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)values[0]);
    __pyx_v_pxd = values[1];
    __pyx_v_full_module_name = values[2];
    __pyx_v_ctx = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("p_module", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3530, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_module", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_s), __pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner, 1, "s", 0))) __PYX_ERR(0, 3530, __pyx_L1_error)
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_10p_module(__pyx_self, __pyx_v_s, __pyx_v_pxd, __pyx_v_full_module_name, __pyx_v_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_10p_module(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pxd, PyObject *__pyx_v_full_module_name, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_module __pyx_t_2;
  __Pyx_RefNannySetupContext("p_module", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.ctx = __pyx_v_ctx;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_module(__pyx_v_s, __pyx_v_pxd, __pyx_v_full_module_name, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_module", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3553
 *                       directive_comments = directive_comments)
 * 
 * def p_template_definition(s):             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     if s.sy == '=':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_template_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s) {
  PyObject *__pyx_v_name = NULL;
  int __pyx_v_required;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("p_template_definition", 0);

  /* "Cython/Compiler/Parsing.py":3554
 * 
 * def p_template_definition(s):
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 *     if s.sy == '=':
 *         s.expect('=')
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3555
 * def p_template_definition(s):
 *     name = p_ident(s)
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.expect('=')
 *         s.expect('*')
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3555, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3556
 *     name = p_ident(s)
 *     if s.sy == '=':
 *         s.expect('=')             # <<<<<<<<<<<<<<
 *         s.expect('*')
 *         required = False
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__40, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3556, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3557
 *     if s.sy == '=':
 *         s.expect('=')
 *         s.expect('*')             # <<<<<<<<<<<<<<
 *         required = False
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__6, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3557, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3558
 *         s.expect('=')
 *         s.expect('*')
 *         required = False             # <<<<<<<<<<<<<<
 *     else:
 *         required = True
 */
    __pyx_v_required = 0;

    /* "Cython/Compiler/Parsing.py":3555
 * def p_template_definition(s):
 *     name = p_ident(s)
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.expect('=')
 *         s.expect('*')
 */
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":3560
 *         required = False
 *     else:
 *         required = True             # <<<<<<<<<<<<<<
 *     return name, required
 * 
 */
  /*else*/ {
    __pyx_v_required = 1;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3561
 *     else:
 *         required = True
 *     return name, required             # <<<<<<<<<<<<<<
 * 
 * def p_cpp_class_definition(s, pos,  ctx):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_required); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3553
 *                       directive_comments = directive_comments)
 * 
 * def p_template_definition(s):             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 *     if s.sy == '=':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_template_definition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3563
 *     return name, required
 * 
 * def p_cpp_class_definition(s, pos,  ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == 'cppclass'
 *     s.next()
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_pos, PyObject *__pyx_v_ctx) {
  CYTHON_UNUSED PyObject *__pyx_v_module_path = NULL;
  PyObject *__pyx_v_class_name = NULL;
  PyObject *__pyx_v_cname = NULL;
  PyObject *__pyx_v_templates = NULL;
  PyObject *__pyx_v_template_names = NULL;
  PyObject *__pyx_v_base_classes = NULL;
  PyObject *__pyx_v_nogil = NULL;
  PyObject *__pyx_v_attributes = NULL;
  PyObject *__pyx_v_body_ctx = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *(*__pyx_t_14)(PyObject *);
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_15;
  __Pyx_RefNannySetupContext("p_cpp_class_definition", 0);

  /* "Cython/Compiler/Parsing.py":3565
 * def p_cpp_class_definition(s, pos,  ctx):
 *     # s.sy == 'cppclass'
 *     s.next()             # <<<<<<<<<<<<<<
 *     module_path = []
 *     class_name = p_ident(s)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3566
 *     # s.sy == 'cppclass'
 *     s.next()
 *     module_path = []             # <<<<<<<<<<<<<<
 *     class_name = p_ident(s)
 *     cname = p_opt_cname(s)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module_path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3567
 *     s.next()
 *     module_path = []
 *     class_name = p_ident(s)             # <<<<<<<<<<<<<<
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_class_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3568
 *     module_path = []
 *     class_name = p_ident(s)
 *     cname = p_opt_cname(s)             # <<<<<<<<<<<<<<
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + class_name
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cname = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3569
 *     class_name = p_ident(s)
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *         cname = ctx.namespace + "::" + class_name
 *     if s.sy == '.':
 */
  __pyx_t_3 = (__pyx_v_cname == Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__pyx_t_1 != Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3570
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + class_name             # <<<<<<<<<<<<<<
 *     if s.sy == '.':
 *         error(pos, "Qualified class name not allowed C++ class")
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3570, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__120); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3570, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_v_class_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3570, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_cname, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3569
 *     class_name = p_ident(s)
 *     cname = p_opt_cname(s)
 *     if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *         cname = ctx.namespace + "::" + class_name
 *     if s.sy == '.':
 */
  }

  /* "Cython/Compiler/Parsing.py":3571
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + class_name
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__37, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3571, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3572
 *         cname = ctx.namespace + "::" + class_name
 *     if s.sy == '.':
 *         error(pos, "Qualified class name not allowed C++ class")             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         s.next()
 */
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_5 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Qualified_class_name_not_allowed};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3572, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pos, __pyx_kp_u_Qualified_class_name_not_allowed};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3572, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3572, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Qualified_class_name_not_allowed);
      __Pyx_GIVEREF(__pyx_kp_u_Qualified_class_name_not_allowed);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_u_Qualified_class_name_not_allowed);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3572, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3571
 *     if cname is None and ctx.namespace is not None:
 *         cname = ctx.namespace + "::" + class_name
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':
 */
  }

  /* "Cython/Compiler/Parsing.py":3573
 *     if s.sy == '.':
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         s.next()
 *         templates = [p_template_definition(s)]
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3573, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3574
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':
 *         s.next()             # <<<<<<<<<<<<<<
 *         templates = [p_template_definition(s)]
 *         while s.sy == ',':
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3574, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3575
 *     if s.sy == '[':
 *         s.next()
 *         templates = [p_template_definition(s)]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_template_definition(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3575, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3575, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_templates = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3576
 *         s.next()
 *         templates = [p_template_definition(s)]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             templates.append(p_template_definition(s))
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3576, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":3577
 *         templates = [p_template_definition(s)]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             templates.append(p_template_definition(s))
 *         s.expect(']')
 */
      __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":3578
 *         while s.sy == ',':
 *             s.next()
 *             templates.append(p_template_definition(s))             # <<<<<<<<<<<<<<
 *         s.expect(']')
 *         template_names = [name for name, required in templates]
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_template_definition(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = __Pyx_PyObject_Append(__pyx_v_templates, __pyx_t_5); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3579
 *             s.next()
 *             templates.append(p_template_definition(s))
 *         s.expect(']')             # <<<<<<<<<<<<<<
 *         template_names = [name for name, required in templates]
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__43, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3579, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3580
 *             templates.append(p_template_definition(s))
 *         s.expect(']')
 *         template_names = [name for name, required in templates]             # <<<<<<<<<<<<<<
 *     else:
 *         templates = None
 */
    { /* enter inner scope */
      PyObject *__pyx_8genexpr5__pyx_v_name = NULL;
      CYTHON_UNUSED PyObject *__pyx_8genexpr5__pyx_v_required = NULL;
      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3580, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_v_templates)) || PyTuple_CheckExact(__pyx_v_templates)) {
        __pyx_t_1 = __pyx_v_templates; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_templates); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3580, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3580, __pyx_L12_error)
      }
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3580, __pyx_L12_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3580, __pyx_L12_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3580, __pyx_L12_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3580, __pyx_L12_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_11(__pyx_t_1);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3580, __pyx_L12_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
          PyObject* sequence = __pyx_t_8;
          #if !CYTHON_COMPILING_IN_PYPY
          Py_ssize_t size = Py_SIZE(sequence);
          #else
          Py_ssize_t size = PySequence_Size(sequence);
          #endif
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 3580, __pyx_L12_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_12);
          #else
          __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3580, __pyx_L12_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3580, __pyx_L12_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_13 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3580, __pyx_L12_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext;
          index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L15_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_6);
          index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L15_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_12);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 2) < 0) __PYX_ERR(0, 3580, __pyx_L12_error)
          __pyx_t_14 = NULL;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          goto __pyx_L16_unpacking_done;
          __pyx_L15_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 3580, __pyx_L12_error)
          __pyx_L16_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v_name, __pyx_t_6);
        __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v_required, __pyx_t_12);
        __pyx_t_12 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_8genexpr5__pyx_v_name))) __PYX_ERR(0, 3580, __pyx_L12_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_name);
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_required);
      goto __pyx_L17_exit_scope;
      __pyx_L12_error:;
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_name);
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v_required);
      goto __pyx_L1_error;
      __pyx_L17_exit_scope:;
    } /* exit inner scope */
    __pyx_v_template_names = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3573
 *     if s.sy == '.':
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         s.next()
 *         templates = [p_template_definition(s)]
 */
    goto __pyx_L7;
  }

  /* "Cython/Compiler/Parsing.py":3582
 *         template_names = [name for name, required in templates]
 *     else:
 *         templates = None             # <<<<<<<<<<<<<<
 *         template_names = None
 *     if s.sy == '(':
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_templates = Py_None;

    /* "Cython/Compiler/Parsing.py":3583
 *     else:
 *         templates = None
 *         template_names = None             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         s.next()
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_template_names = Py_None;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":3584
 *         templates = None
 *         template_names = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = template_names)]
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3584, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3585
 *         template_names = None
 *     if s.sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         base_classes = [p_c_base_type(s, templates = template_names)]
 *         while s.sy == ',':
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3585, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3586
 *     if s.sy == '(':
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = template_names)]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_templates, __pyx_v_template_names) < 0) __PYX_ERR(0, 3586, __pyx_L1_error)
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_12);
    PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_12);
    __pyx_t_12 = 0;
    __pyx_v_base_classes = ((PyObject*)__pyx_t_8);
    __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":3587
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = template_names)]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             base_classes.append(p_c_base_type(s, templates = template_names))
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3587, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":3588
 *         base_classes = [p_c_base_type(s, templates = template_names)]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             base_classes.append(p_c_base_type(s, templates = template_names))
 *         s.expect(')')
 */
      __pyx_t_8 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3588, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":3589
 *         while s.sy == ',':
 *             s.next()
 *             base_classes.append(p_c_base_type(s, templates = template_names))             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *     else:
 */
      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_v_s));
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_templates, __pyx_v_template_names) < 0) __PYX_ERR(0, 3589, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_base_classes, __pyx_t_5); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3590
 *             s.next()
 *             base_classes.append(p_c_base_type(s, templates = template_names))
 *         s.expect(')')             # <<<<<<<<<<<<<<
 *     else:
 *         base_classes = []
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__31, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3590, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3584
 *         templates = None
 *         template_names = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = template_names)]
 */
    goto __pyx_L18;
  }

  /* "Cython/Compiler/Parsing.py":3592
 *         s.expect(')')
 *     else:
 *         base_classes = []             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         error(s.position(), "Name options not allowed for C++ class")
 */
  /*else*/ {
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3592, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_base_classes = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;
  }
  __pyx_L18:;

  /* "Cython/Compiler/Parsing.py":3593
 *     else:
 *         base_classes = []
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3593, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3594
 *         base_classes = []
 *     if s.sy == '[':
 *         error(s.position(), "Name options not allowed for C++ class")             # <<<<<<<<<<<<<<
 *     nogil = p_nogil(s)
 *     if s.sy == ':':
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3594, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
    __pyx_t_12 = __pyx_v_6Cython_8Compiler_7Parsing_error; __pyx_t_8 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
        __pyx_t_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_12)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_kp_u_Name_options_not_allowed_for_C_c};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3594, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_kp_u_Name_options_not_allowed_for_C_c};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3594, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3594, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_t_1);
      __Pyx_INCREF(__pyx_kp_u_Name_options_not_allowed_for_C_c);
      __Pyx_GIVEREF(__pyx_kp_u_Name_options_not_allowed_for_C_c);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_kp_u_Name_options_not_allowed_for_C_c);
      __pyx_t_1 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3594, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3593
 *     else:
 *         base_classes = []
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)
 */
  }

  /* "Cython/Compiler/Parsing.py":3595
 *     if s.sy == '[':
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         s.next()
 */
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_nogil = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3596
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('NEWLINE')
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3596, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3597
 *     nogil = p_nogil(s)
 *     if s.sy == ':':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect('NEWLINE')
 *         s.expect_indent()
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3597, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3598
 *     if s.sy == ':':
 *         s.next()
 *         s.expect('NEWLINE')             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         attributes = []
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_n_u_NEWLINE, NULL); if (unlikely(__pyx_t_2 == -2)) __PYX_ERR(0, 3598, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3599
 *         s.next()
 *         s.expect('NEWLINE')
 *         s.expect_indent()             # <<<<<<<<<<<<<<
 *         attributes = []
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_indent(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3599, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3600
 *         s.expect('NEWLINE')
 *         s.expect_indent()
 *         attributes = []             # <<<<<<<<<<<<<<
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 *         body_ctx.templates = template_names
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_attributes = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3601
 *         s.expect_indent()
 *         attributes = []
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)             # <<<<<<<<<<<<<<
 *         body_ctx.templates = template_names
 *         while s.sy != 'DEDENT':
 */
    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_visibility, __pyx_t_6) < 0) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_level, __pyx_n_u_cpp_class) < 0) __PYX_ERR(0, 3601, __pyx_L1_error)
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nogil); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3601, __pyx_L1_error)
    if (!__pyx_t_2) {
    } else {
      __Pyx_INCREF(__pyx_v_nogil);
      __pyx_t_6 = __pyx_v_nogil;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_nogil); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_L23_bool_binop_done:;
    if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_nogil, __pyx_t_6) < 0) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3601, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_v_body_ctx = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3602
 *         attributes = []
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 *         body_ctx.templates = template_names             # <<<<<<<<<<<<<<
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_body_ctx, __pyx_n_s_templates, __pyx_v_template_names) < 0) __PYX_ERR(0, 3602, __pyx_L1_error)

    /* "Cython/Compiler/Parsing.py":3603
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 *         body_ctx.templates = template_names
 *         while s.sy != 'DEDENT':             # <<<<<<<<<<<<<<
 *             if s.sy != 'pass':
 *                 attributes.append(p_cpp_class_attribute(s, body_ctx))
 */
    while (1) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3603, __pyx_L1_error)
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":3604
 *         body_ctx.templates = template_names
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *                 attributes.append(p_cpp_class_attribute(s, body_ctx))
 *             else:
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3604, __pyx_L1_error)
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":3605
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':
 *                 attributes.append(p_cpp_class_attribute(s, body_ctx))             # <<<<<<<<<<<<<<
 *             else:
 *                 s.next()
 */
        __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_attribute(__pyx_v_s, __pyx_v_body_ctx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3605, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_PyObject_Append(__pyx_v_attributes, __pyx_t_6); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3605, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3604
 *         body_ctx.templates = template_names
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':             # <<<<<<<<<<<<<<
 *                 attributes.append(p_cpp_class_attribute(s, body_ctx))
 *             else:
 */
        goto __pyx_L27;
      }

      /* "Cython/Compiler/Parsing.py":3607
 *                 attributes.append(p_cpp_class_attribute(s, body_ctx))
 *             else:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()
 */
      /*else*/ {
        __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->next(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3607, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3608
 *             else:
 *                 s.next()
 *                 s.expect_newline("Expected a newline")             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *     else:
 */
        __pyx_t_15.__pyx_n = 1;
        __pyx_t_15.message = __pyx_kp_u_Expected_a_newline;
        __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3608, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __pyx_L27:;
    }

    /* "Cython/Compiler/Parsing.py":3609
 *                 s.next()
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *     else:
 *         attributes = None
 */
    __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3609, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3596
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('NEWLINE')
 */
    goto __pyx_L22;
  }

  /* "Cython/Compiler/Parsing.py":3611
 *         s.expect_dedent()
 *     else:
 *         attributes = None             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_attributes = Py_None;

    /* "Cython/Compiler/Parsing.py":3612
 *     else:
 *         attributes = None
 *         s.expect_newline("Syntax error in C++ class definition")             # <<<<<<<<<<<<<<
 *     return Nodes.CppClassNode(pos,
 *         name = class_name,
 */
    __pyx_t_15.__pyx_n = 1;
    __pyx_t_15.message = __pyx_kp_u_Syntax_error_in_C_class_definiti_2;
    __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3612, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_L22:;

  /* "Cython/Compiler/Parsing.py":3613
 *         attributes = None
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,             # <<<<<<<<<<<<<<
 *         name = class_name,
 *         cname = cname,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CppClassNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF(__pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":3614
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,
 *         name = class_name,             # <<<<<<<<<<<<<<
 *         cname = cname,
 *         base_classes = base_classes,
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_class_name) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3615
 *     return Nodes.CppClassNode(pos,
 *         name = class_name,
 *         cname = cname,             # <<<<<<<<<<<<<<
 *         base_classes = base_classes,
 *         visibility = ctx.visibility,
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cname, __pyx_v_cname) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3616
 *         name = class_name,
 *         cname = cname,
 *         base_classes = base_classes,             # <<<<<<<<<<<<<<
 *         visibility = ctx.visibility,
 *         in_pxd = ctx.level == 'module_pxd',
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base_classes, __pyx_v_base_classes) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3617
 *         cname = cname,
 *         base_classes = base_classes,
 *         visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *         in_pxd = ctx.level == 'module_pxd',
 *         attributes = attributes,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_visibility, __pyx_t_1) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3618
 *         base_classes = base_classes,
 *         visibility = ctx.visibility,
 *         in_pxd = ctx.level == 'module_pxd',             # <<<<<<<<<<<<<<
 *         attributes = attributes,
 *         templates = templates)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_in_pxd, __pyx_t_8) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":3619
 *         visibility = ctx.visibility,
 *         in_pxd = ctx.level == 'module_pxd',
 *         attributes = attributes,             # <<<<<<<<<<<<<<
 *         templates = templates)
 * 
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_attributes, __pyx_v_attributes) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3620
 *         in_pxd = ctx.level == 'module_pxd',
 *         attributes = attributes,
 *         templates = templates)             # <<<<<<<<<<<<<<
 * 
 * def p_cpp_class_attribute(s, ctx):
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_templates, __pyx_v_templates) < 0) __PYX_ERR(0, 3614, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3613
 *         attributes = None
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,             # <<<<<<<<<<<<<<
 *         name = class_name,
 *         cname = cname,
 */
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3563
 *     return name, required
 * 
 * def p_cpp_class_definition(s, pos,  ctx):             # <<<<<<<<<<<<<<
 *     # s.sy == 'cppclass'
 *     s.next()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cpp_class_definition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_module_path);
  __Pyx_XDECREF(__pyx_v_class_name);
  __Pyx_XDECREF(__pyx_v_cname);
  __Pyx_XDECREF(__pyx_v_templates);
  __Pyx_XDECREF(__pyx_v_template_names);
  __Pyx_XDECREF(__pyx_v_base_classes);
  __Pyx_XDECREF(__pyx_v_nogil);
  __Pyx_XDECREF(__pyx_v_attributes);
  __Pyx_XDECREF(__pyx_v_body_ctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3622
 *         templates = templates)
 * 
 * def p_cpp_class_attribute(s, ctx):             # <<<<<<<<<<<<<<
 *     decorators = None
 *     if s.sy == '@':
 */

static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_attribute(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_v_s, PyObject *__pyx_v_ctx) {
  PyObject *__pyx_v_decorators = NULL;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_v_tup = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("p_cpp_class_attribute", 0);

  /* "Cython/Compiler/Parsing.py":3623
 * 
 * def p_cpp_class_attribute(s, ctx):
 *     decorators = None             # <<<<<<<<<<<<<<
 *     if s.sy == '@':
 *         decorators = p_decorators(s)
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_decorators = Py_None;

  /* "Cython/Compiler/Parsing.py":3624
 * def p_cpp_class_attribute(s, ctx):
 *     decorators = None
 *     if s.sy == '@':             # <<<<<<<<<<<<<<
 *         decorators = p_decorators(s)
 *     if s.systring == 'cppclass':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__21, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3624, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3625
 *     decorators = None
 *     if s.sy == '@':
 *         decorators = p_decorators(s)             # <<<<<<<<<<<<<<
 *     if s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, s.position(), ctx)
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_decorators(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_decorators, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3624
 * def p_cpp_class_attribute(s, ctx):
 *     decorators = None
 *     if s.sy == '@':             # <<<<<<<<<<<<<<
 *         decorators = p_decorators(s)
 *     if s.systring == 'cppclass':
 */
  }

  /* "Cython/Compiler/Parsing.py":3626
 *     if s.sy == '@':
 *         decorators = p_decorators(s)
 *     if s.systring == 'cppclass':             # <<<<<<<<<<<<<<
 *         return p_cpp_class_definition(s, s.position(), ctx)
 *     elif s.systring == 'ctypedef':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_cppclass, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3626, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3627
 *         decorators = p_decorators(s)
 *     if s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, s.position(), ctx)             # <<<<<<<<<<<<<<
 *     elif s.systring == 'ctypedef':
 *         return p_ctypedef_statement(s, ctx)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition(__pyx_v_s, __pyx_t_2, __pyx_v_ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3626
 *     if s.sy == '@':
 *         decorators = p_decorators(s)
 *     if s.systring == 'cppclass':             # <<<<<<<<<<<<<<
 *         return p_cpp_class_definition(s, s.position(), ctx)
 *     elif s.systring == 'ctypedef':
 */
  }

  /* "Cython/Compiler/Parsing.py":3628
 *     if s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, s.position(), ctx)
 *     elif s.systring == 'ctypedef':             # <<<<<<<<<<<<<<
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_ctypedef, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3628, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3629
 *         return p_cpp_class_definition(s, s.position(), ctx)
 *     elif s.systring == 'ctypedef':
 *         return p_ctypedef_statement(s, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if s.systring != 'enum':
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "Cython/Compiler/Parsing.py":3628
 *     if s.systring == 'cppclass':
 *         return p_cpp_class_definition(s, s.position(), ctx)
 *     elif s.systring == 'ctypedef':             # <<<<<<<<<<<<<<
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 */
  }

  /* "Cython/Compiler/Parsing.py":3630
 *     elif s.systring == 'ctypedef':
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:             # <<<<<<<<<<<<<<
 *         if s.systring != 'enum':
 *             return p_cpp_class_definition(s, s.position(), ctx)
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3630, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_1 = __pyx_t_4;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 != 0);
  __pyx_t_1 = __pyx_t_5;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3631
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if s.systring != 'enum':             # <<<<<<<<<<<<<<
 *             return p_cpp_class_definition(s, s.position(), ctx)
 *         else:
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_enum, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3631, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3632
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if s.systring != 'enum':
 *             return p_cpp_class_definition(s, s.position(), ctx)             # <<<<<<<<<<<<<<
 *         else:
 *             return p_struct_enum(s, s.position(), ctx)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3632, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition(__pyx_v_s, __pyx_t_3, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3632, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":3631
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:
 *         if s.systring != 'enum':             # <<<<<<<<<<<<<<
 *             return p_cpp_class_definition(s, s.position(), ctx)
 *         else:
 */
    }

    /* "Cython/Compiler/Parsing.py":3634
 *             return p_cpp_class_definition(s, s.position(), ctx)
 *         else:
 *             return p_struct_enum(s, s.position(), ctx)             # <<<<<<<<<<<<<<
 *     else:
 *         node = p_c_func_or_var_declaration(s, s.position(), ctx)
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3634, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_struct_enum(__pyx_v_s, __pyx_t_2, __pyx_v_ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3634, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":3630
 *     elif s.systring == 'ctypedef':
 *         return p_ctypedef_statement(s, ctx)
 *     elif s.sy == 'IDENT' and s.systring in struct_enum_union:             # <<<<<<<<<<<<<<
 *         if s.systring != 'enum':
 *             return p_cpp_class_definition(s, s.position(), ctx)
 */
  }

  /* "Cython/Compiler/Parsing.py":3636
 *             return p_struct_enum(s, s.position(), ctx)
 *     else:
 *         node = p_c_func_or_var_declaration(s, s.position(), ctx)             # <<<<<<<<<<<<<<
 *         if decorators is not None:
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode
 */
  /*else*/ {
    __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->__pyx_base.position(((struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner *)__pyx_v_s)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(__pyx_v_s, __pyx_t_3, __pyx_v_ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3637
 *     else:
 *         node = p_c_func_or_var_declaration(s, s.position(), ctx)
 *         if decorators is not None:             # <<<<<<<<<<<<<<
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode
 *             if ctx.allow_struct_enum_decorator:
 */
    __pyx_t_1 = (__pyx_v_decorators != Py_None);
    __pyx_t_5 = (__pyx_t_1 != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":3638
 *         node = p_c_func_or_var_declaration(s, s.position(), ctx)
 *         if decorators is not None:
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode             # <<<<<<<<<<<<<<
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CFuncDefNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CVarDefNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3638, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CClassDefNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3638, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3638, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6);
      __pyx_t_2 = 0;
      __pyx_t_3 = 0;
      __pyx_t_6 = 0;
      __pyx_v_tup = ((PyObject*)__pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":3639
 *         if decorators is not None:
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode
 *             if ctx.allow_struct_enum_decorator:             # <<<<<<<<<<<<<<
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 *             if not isinstance(node, tup):
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_allow_struct_enum_decorator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3639, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3639, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":3640
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode             # <<<<<<<<<<<<<<
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CStructOrUnionDefNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3640, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CEnumDefNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3640, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3640, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6);
        __pyx_t_7 = 0;
        __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_tup, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3640, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF_SET(__pyx_v_tup, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3639
 *         if decorators is not None:
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode
 *             if ctx.allow_struct_enum_decorator:             # <<<<<<<<<<<<<<
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 *             if not isinstance(node, tup):
 */
      }

      /* "Cython/Compiler/Parsing.py":3641
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 *             if not isinstance(node, tup):             # <<<<<<<<<<<<<<
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators
 */
      __pyx_t_5 = PyObject_IsInstance(__pyx_v_node, __pyx_v_tup); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 3641, __pyx_L1_error)
      __pyx_t_1 = ((!(__pyx_t_5 != 0)) != 0);
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":3642
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *             node.decorators = decorators
 *         return node
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3642, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__137, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3642, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":3641
 *             if ctx.allow_struct_enum_decorator:
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 *             if not isinstance(node, tup):             # <<<<<<<<<<<<<<
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators
 */
      }

      /* "Cython/Compiler/Parsing.py":3643
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators             # <<<<<<<<<<<<<<
 *         return node
 * 
 */
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_decorators, __pyx_v_decorators) < 0) __PYX_ERR(0, 3643, __pyx_L1_error)

      /* "Cython/Compiler/Parsing.py":3637
 *     else:
 *         node = p_c_func_or_var_declaration(s, s.position(), ctx)
 *         if decorators is not None:             # <<<<<<<<<<<<<<
 *             tup = Nodes.CFuncDefNode, Nodes.CVarDefNode, Nodes.CClassDefNode
 *             if ctx.allow_struct_enum_decorator:
 */
    }

    /* "Cython/Compiler/Parsing.py":3644
 *                 s.error("Decorators can only be followed by functions or classes")
 *             node.decorators = decorators
 *         return node             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_node);
    __pyx_r = __pyx_v_node;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":3622
 *         templates = templates)
 * 
 * def p_cpp_class_attribute(s, ctx):             # <<<<<<<<<<<<<<
 *     decorators = None
 *     if s.sy == '@':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.p_cpp_class_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_decorators);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF(__pyx_v_tup);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":3653
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     ind = "  " * level
 *     if node:
 */

static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_13print_parse_tree(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(PyObject *__pyx_v_f, PyObject *__pyx_v_node, PyObject *__pyx_v_level, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree *__pyx_optional_args) {
  PyObject *__pyx_v_key = ((PyObject *)Py_None);
  PyObject *__pyx_v_ind = NULL;
  PyTypeObject *__pyx_v_t = NULL;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_tag = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_t_14;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree __pyx_t_15;
  __Pyx_RefNannySetupContext("print_parse_tree", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_key = __pyx_optional_args->key;
    }
  }

  /* "Cython/Compiler/Parsing.py":3654
 * 
 * def print_parse_tree(f, node, level, key = None):
 *     ind = "  " * level             # <<<<<<<<<<<<<<
 *     if node:
 *         f.write(ind)
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_kp_u__138, __pyx_v_level); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ind = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3655
 * def print_parse_tree(f, node, level, key = None):
 *     ind = "  " * level
 *     if node:             # <<<<<<<<<<<<<<
 *         f.write(ind)
 *         if key:
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_node); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3655, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3656
 *     ind = "  " * level
 *     if node:
 *         f.write(ind)             # <<<<<<<<<<<<<<
 *         if key:
 *             f.write("%s: " % key)
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    if (!__pyx_t_4) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_ind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3656, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    } else {
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_ind};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3656, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_ind};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3656, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3656, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_ind);
        __Pyx_GIVEREF(__pyx_v_ind);
        PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_ind);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3656, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3657
 *     if node:
 *         f.write(ind)
 *         if key:             # <<<<<<<<<<<<<<
 *             f.write("%s: " % key)
 *         t = type(node)
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_key); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3657, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3658
 *         f.write(ind)
 *         if key:
 *             f.write("%s: " % key)             # <<<<<<<<<<<<<<
 *         t = type(node)
 *         if t is tuple:
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3658, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_s_3, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3658, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      if (!__pyx_t_4) {
        __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3658, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5);
          __pyx_t_5 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3657
 *     if node:
 *         f.write(ind)
 *         if key:             # <<<<<<<<<<<<<<
 *             f.write("%s: " % key)
 *         t = type(node)
 */
    }

    /* "Cython/Compiler/Parsing.py":3659
 *         if key:
 *             f.write("%s: " % key)
 *         t = type(node)             # <<<<<<<<<<<<<<
 *         if t is tuple:
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 */
    __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_node)));
    __pyx_v_t = ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_node)));

    /* "Cython/Compiler/Parsing.py":3660
 *             f.write("%s: " % key)
 *         t = type(node)
 *         if t is tuple:             # <<<<<<<<<<<<<<
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in range(2, len(node)):
 */
    __pyx_t_2 = (__pyx_v_t == (&PyTuple_Type));
    __pyx_t_7 = (__pyx_t_2 != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3661
 *         t = type(node)
 *         if t is tuple:
 *             f.write("(%s @ %s\n" % (node[0], node[1]))             # <<<<<<<<<<<<<<
 *             for i in range(2, len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3661, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_node, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3661, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_node, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3661, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3661, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
      __pyx_t_6 = 0;
      __pyx_t_5 = 0;
      __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_s_s, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3661, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      if (!__pyx_t_4) {
        __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_5};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3661, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5);
          __pyx_t_5 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3662
 *         if t is tuple:
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in range(2, len(node)):             # <<<<<<<<<<<<<<
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s)\n" % ind)
 */
      __pyx_t_8 = PyObject_Length(__pyx_v_node); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 3662, __pyx_L1_error)
      for (__pyx_t_9 = 2; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_v_i = __pyx_t_9;

        /* "Cython/Compiler/Parsing.py":3663
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in range(2, len(node)):
 *                 print_parse_tree(f, node[i], level+1)             # <<<<<<<<<<<<<<
 *             f.write("%s)\n" % ind)
 *             return
 */
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_node, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_t_1, __pyx_t_3, 0, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }

      /* "Cython/Compiler/Parsing.py":3664
 *             for i in range(2, len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s)\n" % ind)             # <<<<<<<<<<<<<<
 *             return
 *         elif isinstance(node, Nodes.Node):
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3664, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_s_4, __pyx_v_ind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3664, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      if (!__pyx_t_5) {
        __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3664, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1};
          __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3664, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1};
          __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3664, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        } else
        #endif
        {
          __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3664, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
          __Pyx_GIVEREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_1);
          __pyx_t_1 = 0;
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3664, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3665
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s)\n" % ind)
 *             return             # <<<<<<<<<<<<<<
 *         elif isinstance(node, Nodes.Node):
 *             try:
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":3660
 *             f.write("%s: " % key)
 *         t = type(node)
 *         if t is tuple:             # <<<<<<<<<<<<<<
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in range(2, len(node)):
 */
    }

    /* "Cython/Compiler/Parsing.py":3666
 *             f.write("%s)\n" % ind)
 *             return
 *         elif isinstance(node, Nodes.Node):             # <<<<<<<<<<<<<<
 *             try:
 *                 tag = node.tag
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_Node); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyObject_IsInstance(__pyx_v_node, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 3666, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = (__pyx_t_7 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3667
 *             return
 *         elif isinstance(node, Nodes.Node):
 *             try:             # <<<<<<<<<<<<<<
 *                 tag = node.tag
 *             except AttributeError:
 */
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_12);
        /*try:*/ {

          /* "Cython/Compiler/Parsing.py":3668
 *         elif isinstance(node, Nodes.Node):
 *             try:
 *                 tag = node.tag             # <<<<<<<<<<<<<<
 *             except AttributeError:
 *                 tag = node.__class__.__name__
 */
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_tag); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3668, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_tag = __pyx_t_6;
          __pyx_t_6 = 0;

          /* "Cython/Compiler/Parsing.py":3667
 *             return
 *         elif isinstance(node, Nodes.Node):
 *             try:             # <<<<<<<<<<<<<<
 *                 tag = node.tag
 *             except AttributeError:
 */
        }
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L15_try_end;
        __pyx_L8_error:;
        __Pyx_PyThreadState_assign
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3669
 *             try:
 *                 tag = node.tag
 *             except AttributeError:             # <<<<<<<<<<<<<<
 *                 tag = node.__class__.__name__
 *             f.write("%s @ %s\n" % (tag, node.pos))
 */
        __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
        if (__pyx_t_13) {
          __Pyx_AddTraceback("Cython.Compiler.Parsing.print_parse_tree", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(0, 3669, __pyx_L10_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_GOTREF(__pyx_t_4);

          /* "Cython/Compiler/Parsing.py":3670
 *                 tag = node.tag
 *             except AttributeError:
 *                 tag = node.__class__.__name__             # <<<<<<<<<<<<<<
 *             f.write("%s @ %s\n" % (tag, node.pos))
 *             for name, value in node.__dict__.items():
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3670, __pyx_L10_except_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3670, __pyx_L10_except_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_5);
          __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L9_exception_handled;
        }
        goto __pyx_L10_except_error;
        __pyx_L10_except_error:;

        /* "Cython/Compiler/Parsing.py":3667
 *             return
 *         elif isinstance(node, Nodes.Node):
 *             try:             # <<<<<<<<<<<<<<
 *                 tag = node.tag
 *             except AttributeError:
 */
        __Pyx_PyThreadState_assign
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        goto __pyx_L1_error;
        __pyx_L9_exception_handled:;
        __Pyx_PyThreadState_assign
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        __pyx_L15_try_end:;
      }

      /* "Cython/Compiler/Parsing.py":3671
 *             except AttributeError:
 *                 tag = node.__class__.__name__
 *             f.write("%s @ %s\n" % (tag, node.pos))             # <<<<<<<<<<<<<<
 *             for name, value in node.__dict__.items():
 *                 if name != 'tag' and name != 'pos':
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_tag);
      __Pyx_GIVEREF(__pyx_v_tag);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_tag);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_s_s_2, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      if (!__pyx_t_5) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3671, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_6};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3671, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_6};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3671, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        {
          __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3671, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL;
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_6);
          __pyx_t_6 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3671, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3672
 *                 tag = node.__class__.__name__
 *             f.write("%s @ %s\n" % (tag, node.pos))
 *             for name, value in node.__dict__.items():             # <<<<<<<<<<<<<<
 *                 if name != 'tag' and name != 'pos':
 *                     print_parse_tree(f, value, level+1, name)
 */
      __pyx_t_8 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3672, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__pyx_t_3 == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
        __PYX_ERR(0, 3672, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_dict_iterator(__pyx_t_3, 0, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_13)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3672, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4);
      __pyx_t_4 = __pyx_t_1;
      __pyx_t_1 = 0;
      while (1) {
        __pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_9, &__pyx_t_8, &__pyx_t_1, &__pyx_t_3, NULL, __pyx_t_13);
        if (unlikely(__pyx_t_14 == 0)) break;
        if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 3672, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1);
        __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":3673
 *             f.write("%s @ %s\n" % (tag, node.pos))
 *             for name, value in node.__dict__.items():
 *                 if name != 'tag' and name != 'pos':             # <<<<<<<<<<<<<<
 *                     print_parse_tree(f, value, level+1, name)
 *             return
 */
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_tag, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3673, __pyx_L1_error)
        if (__pyx_t_7) {
        } else {
          __pyx_t_2 = __pyx_t_7;
          goto __pyx_L21_bool_binop_done;
        }
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_pos, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3673, __pyx_L1_error)
        __pyx_t_2 = __pyx_t_7;
        __pyx_L21_bool_binop_done:;
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":3674
 *             for name, value in node.__dict__.items():
 *                 if name != 'tag' and name != 'pos':
 *                     print_parse_tree(f, value, level+1, name)             # <<<<<<<<<<<<<<
 *             return
 *         elif t is list:
 */
          __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3674, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_15.__pyx_n = 1;
          __pyx_t_15.key = __pyx_v_name;
          __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_v_value, __pyx_t_3, 0, &__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3674, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":3673
 *             f.write("%s @ %s\n" % (tag, node.pos))
 *             for name, value in node.__dict__.items():
 *                 if name != 'tag' and name != 'pos':             # <<<<<<<<<<<<<<
 *                     print_parse_tree(f, value, level+1, name)
 *             return
 */
        }
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3675
 *                 if name != 'tag' and name != 'pos':
 *                     print_parse_tree(f, value, level+1, name)
 *             return             # <<<<<<<<<<<<<<
 *         elif t is list:
 *             f.write("[\n")
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":3666
 *             f.write("%s)\n" % ind)
 *             return
 *         elif isinstance(node, Nodes.Node):             # <<<<<<<<<<<<<<
 *             try:
 *                 tag = node.tag
 */
    }

    /* "Cython/Compiler/Parsing.py":3676
 *                     print_parse_tree(f, value, level+1, name)
 *             return
 *         elif t is list:             # <<<<<<<<<<<<<<
 *             f.write("[\n")
 *             for i in range(len(node)):
 */
    __pyx_t_2 = (__pyx_v_t == (&PyList_Type));
    __pyx_t_7 = (__pyx_t_2 != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3677
 *             return
 *         elif t is list:
 *             f.write("[\n")             # <<<<<<<<<<<<<<
 *             for i in range(len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3677, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__140, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3677, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3678
 *         elif t is list:
 *             f.write("[\n")
 *             for i in range(len(node)):             # <<<<<<<<<<<<<<
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s]\n" % ind)
 */
      __pyx_t_9 = PyObject_Length(__pyx_v_node); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3678, __pyx_L1_error)
      for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8+=1) {
        __pyx_v_i = __pyx_t_8;

        /* "Cython/Compiler/Parsing.py":3679
 *             f.write("[\n")
 *             for i in range(len(node)):
 *                 print_parse_tree(f, node[i], level+1)             # <<<<<<<<<<<<<<
 *             f.write("%s]\n" % ind)
 *             return
 */
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_node, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3679, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3679, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_t_1, __pyx_t_4, 0, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3679, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }

      /* "Cython/Compiler/Parsing.py":3680
 *             for i in range(len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s]\n" % ind)             # <<<<<<<<<<<<<<
 *             return
 *     f.write("%s%s\n" % (ind, node))
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3680, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_s_5, __pyx_v_ind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3680, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      if (!__pyx_t_6) {
        __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3680, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else {
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1};
          __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3680, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1};
          __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3680, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        } else
        #endif
        {
          __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3680, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
          __Pyx_GIVEREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_1);
          __pyx_t_1 = 0;
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3680, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":3681
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s]\n" % ind)
 *             return             # <<<<<<<<<<<<<<
 *     f.write("%s%s\n" % (ind, node))
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "Cython/Compiler/Parsing.py":3676
 *                     print_parse_tree(f, value, level+1, name)
 *             return
 *         elif t is list:             # <<<<<<<<<<<<<<
 *             f.write("[\n")
 *             for i in range(len(node)):
 */
    }

    /* "Cython/Compiler/Parsing.py":3655
 * def print_parse_tree(f, node, level, key = None):
 *     ind = "  " * level
 *     if node:             # <<<<<<<<<<<<<<
 *         f.write(ind)
 *         if key:
 */
  }

  /* "Cython/Compiler/Parsing.py":3682
 *             f.write("%s]\n" % ind)
 *             return
 *     f.write("%s%s\n" % (ind, node))             # <<<<<<<<<<<<<<
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_ind);
  __Pyx_GIVEREF(__pyx_v_ind);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_ind);
  __Pyx_INCREF(__pyx_v_node);
  __Pyx_GIVEREF(__pyx_v_node);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_node);
  __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_s_s_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  if (!__pyx_t_5) {
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3682, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else {
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3682, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_1};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3682, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":3653
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     ind = "  " * level
 *     if node:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.print_parse_tree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ind);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_tag);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_13print_parse_tree(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Parsing_13print_parse_tree = {"print_parse_tree", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_13print_parse_tree, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6Cython_8Compiler_7Parsing_13print_parse_tree(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_f = 0;
  PyObject *__pyx_v_node = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("print_parse_tree (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_node,&__pyx_n_s_level,&__pyx_n_s_key,0};
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("print_parse_tree", 0, 3, 4, 1); __PYX_ERR(0, 3653, __pyx_L3_error)
        }
        case  2:
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("print_parse_tree", 0, 3, 4, 2); __PYX_ERR(0, 3653, __pyx_L3_error)
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "print_parse_tree") < 0)) __PYX_ERR(0, 3653, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_f = values[0];
    __pyx_v_node = values[1];
    __pyx_v_level = values[2];
    __pyx_v_key = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("print_parse_tree", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3653, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("Cython.Compiler.Parsing.print_parse_tree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6Cython_8Compiler_7Parsing_12print_parse_tree(__pyx_self, __pyx_v_f, __pyx_v_node, __pyx_v_level, __pyx_v_key);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6Cython_8Compiler_7Parsing_12print_parse_tree(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_f, PyObject *__pyx_v_node, PyObject *__pyx_v_level, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree __pyx_t_2;
  __Pyx_RefNannySetupContext("print_parse_tree", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.key = __pyx_v_key;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_v_node, __pyx_v_level, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.print_parse_tree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
  #if PY_VERSION_HEX < 0x03020000
    { PyObject_HEAD_INIT(NULL) NULL, 0, NULL },
  #else
    PyModuleDef_HEAD_INIT,
  #endif
    "Parsing",
    0, /* m_doc */
    -1, /* m_size */
    __pyx_methods /* m_methods */,
    NULL, /* m_reload */
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
  {&__pyx_n_s_AmpersandNode, __pyx_k_AmpersandNode, sizeof(__pyx_k_AmpersandNode), 0, 0, 1, 1},
  {&__pyx_kp_u_An_axis_specification_in_memoryv, __pyx_k_An_axis_specification_in_memoryv, sizeof(__pyx_k_An_axis_specification_in_memoryv), 0, 1, 0, 0},
  {&__pyx_kp_u_Argument_expansion_not_allowed_h, __pyx_k_Argument_expansion_not_allowed_h, sizeof(__pyx_k_Argument_expansion_not_allowed_h), 0, 1, 0, 0},
  {&__pyx_n_s_AsTupleNode, __pyx_k_AsTupleNode, sizeof(__pyx_k_AsTupleNode), 0, 0, 1, 1},
  {&__pyx_n_s_AssertStatNode, __pyx_k_AssertStatNode, sizeof(__pyx_k_AssertStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_AsyncIteratorNode, __pyx_k_AsyncIteratorNode, sizeof(__pyx_k_AsyncIteratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
  {&__pyx_n_s_AttributeNode, __pyx_k_AttributeNode, sizeof(__pyx_k_AttributeNode), 0, 0, 1, 1},
  {&__pyx_n_s_AwaitExprNode, __pyx_k_AwaitExprNode, sizeof(__pyx_k_AwaitExprNode), 0, 0, 1, 1},
  {&__pyx_n_u_BEGIN_STRING, __pyx_k_BEGIN_STRING, sizeof(__pyx_k_BEGIN_STRING), 0, 1, 0, 1},
  {&__pyx_n_s_BackquoteNode, __pyx_k_BackquoteNode, sizeof(__pyx_k_BackquoteNode), 0, 0, 1, 1},
  {&__pyx_n_s_BoolNode, __pyx_k_BoolNode, sizeof(__pyx_k_BoolNode), 0, 0, 1, 1},
  {&__pyx_n_s_BreakStatNode, __pyx_k_BreakStatNode, sizeof(__pyx_k_BreakStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_Builtin, __pyx_k_Builtin, sizeof(__pyx_k_Builtin), 0, 0, 1, 1},
  {&__pyx_n_s_BytesLiteralBuilder, __pyx_k_BytesLiteralBuilder, sizeof(__pyx_k_BytesLiteralBuilder), 0, 0, 1, 1},
  {&__pyx_n_s_BytesNode, __pyx_k_BytesNode, sizeof(__pyx_k_BytesNode), 0, 0, 1, 1},
  {&__pyx_n_s_CArgDeclNode, __pyx_k_CArgDeclNode, sizeof(__pyx_k_CArgDeclNode), 0, 0, 1, 1},
  {&__pyx_n_s_CArrayDeclaratorNode, __pyx_k_CArrayDeclaratorNode, sizeof(__pyx_k_CArrayDeclaratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_CClassDefNode, __pyx_k_CClassDefNode, sizeof(__pyx_k_CClassDefNode), 0, 0, 1, 1},
  {&__pyx_n_s_CComplexBaseTypeNode, __pyx_k_CComplexBaseTypeNode, sizeof(__pyx_k_CComplexBaseTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_CConstDeclaratorNode, __pyx_k_CConstDeclaratorNode, sizeof(__pyx_k_CConstDeclaratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_CConstTypeNode, __pyx_k_CConstTypeNode, sizeof(__pyx_k_CConstTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_CDefExternNode, __pyx_k_CDefExternNode, sizeof(__pyx_k_CDefExternNode), 0, 0, 1, 1},
  {&__pyx_n_s_CEnumDefItemNode, __pyx_k_CEnumDefItemNode, sizeof(__pyx_k_CEnumDefItemNode), 0, 0, 1, 1},
  {&__pyx_n_s_CEnumDefNode, __pyx_k_CEnumDefNode, sizeof(__pyx_k_CEnumDefNode), 0, 0, 1, 1},
  {&__pyx_n_s_CFuncDeclaratorNode, __pyx_k_CFuncDeclaratorNode, sizeof(__pyx_k_CFuncDeclaratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_CFuncDefNode, __pyx_k_CFuncDefNode, sizeof(__pyx_k_CFuncDefNode), 0, 0, 1, 1},
  {&__pyx_n_u_CHARS, __pyx_k_CHARS, sizeof(__pyx_k_CHARS), 0, 1, 0, 1},
  {&__pyx_n_s_CImportStatNode, __pyx_k_CImportStatNode, sizeof(__pyx_k_CImportStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_CNameDeclaratorNode, __pyx_k_CNameDeclaratorNode, sizeof(__pyx_k_CNameDeclaratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_CNestedBaseTypeNode, __pyx_k_CNestedBaseTypeNode, sizeof(__pyx_k_CNestedBaseTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_CPtrDeclaratorNode, __pyx_k_CPtrDeclaratorNode, sizeof(__pyx_k_CPtrDeclaratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_CReferenceDeclaratorNode, __pyx_k_CReferenceDeclaratorNode, sizeof(__pyx_k_CReferenceDeclaratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_CSimpleBaseTypeNode, __pyx_k_CSimpleBaseTypeNode, sizeof(__pyx_k_CSimpleBaseTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_CStructOrUnionDefNode, __pyx_k_CStructOrUnionDefNode, sizeof(__pyx_k_CStructOrUnionDefNode), 0, 0, 1, 1},
  {&__pyx_n_s_CTupleBaseTypeNode, __pyx_k_CTupleBaseTypeNode, sizeof(__pyx_k_CTupleBaseTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_CTypeDefNode, __pyx_k_CTypeDefNode, sizeof(__pyx_k_CTypeDefNode), 0, 0, 1, 1},
  {&__pyx_n_s_CVarDefNode, __pyx_k_CVarDefNode, sizeof(__pyx_k_CVarDefNode), 0, 0, 1, 1},
  {&__pyx_kp_u_C_class_may_only_have_one_base_c, __pyx_k_C_class_may_only_have_one_base_c, sizeof(__pyx_k_C_class_may_only_have_one_base_c), 0, 1, 0, 0},
  {&__pyx_kp_u_C_function_definition_not_allowe, __pyx_k_C_function_definition_not_allowe, sizeof(__pyx_k_C_function_definition_not_allowe), 0, 1, 0, 0},
  {&__pyx_kp_u_C_struct_union_cannot_be_declare, __pyx_k_C_struct_union_cannot_be_declare, sizeof(__pyx_k_C_struct_union_cannot_be_declare), 0, 1, 0, 0},
  {&__pyx_kp_u_C_struct_union_enum_definition_n, __pyx_k_C_struct_union_enum_definition_n, sizeof(__pyx_k_C_struct_union_enum_definition_n), 0, 1, 0, 0},
  {&__pyx_kp_u_Cannot_combine_api_with_s, __pyx_k_Cannot_combine_api_with_s, sizeof(__pyx_k_Cannot_combine_api_with_s), 0, 1, 0, 0},
  {&__pyx_kp_u_Cannot_concatenate_char_literal, __pyx_k_Cannot_concatenate_char_literal, sizeof(__pyx_k_Cannot_concatenate_char_literal), 0, 1, 0, 0},
  {&__pyx_kp_u_Cannot_mix_string_literals_of_di, __pyx_k_Cannot_mix_string_literals_of_di, sizeof(__pyx_k_Cannot_mix_string_literals_of_di), 0, 1, 0, 0},
  {&__pyx_n_s_CascadedAssignmentNode, __pyx_k_CascadedAssignmentNode, sizeof(__pyx_k_CascadedAssignmentNode), 0, 0, 1, 1},
  {&__pyx_n_s_CascadedCmpNode, __pyx_k_CascadedCmpNode, sizeof(__pyx_k_CascadedCmpNode), 0, 0, 1, 1},
  {&__pyx_n_s_CharNode, __pyx_k_CharNode, sizeof(__pyx_k_CharNode), 0, 0, 1, 1},
  {&__pyx_n_s_ComprehensionAppendNode, __pyx_k_ComprehensionAppendNode, sizeof(__pyx_k_ComprehensionAppendNode), 0, 0, 1, 1},
  {&__pyx_n_s_ComprehensionNode, __pyx_k_ComprehensionNode, sizeof(__pyx_k_ComprehensionNode), 0, 0, 1, 1},
  {&__pyx_n_s_CondExprNode, __pyx_k_CondExprNode, sizeof(__pyx_k_CondExprNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Conflicting_visibility_options_s, __pyx_k_Conflicting_visibility_options_s, sizeof(__pyx_k_Conflicting_visibility_options_s), 0, 1, 0, 0},
  {&__pyx_n_s_ContinueStatNode, __pyx_k_ContinueStatNode, sizeof(__pyx_k_ContinueStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_CppClassNode, __pyx_k_CppClassNode, sizeof(__pyx_k_CppClassNode), 0, 0, 1, 1},
  {&__pyx_n_s_Ctx, __pyx_k_Ctx, sizeof(__pyx_k_Ctx), 0, 0, 1, 1},
  {&__pyx_n_s_Ctx___call, __pyx_k_Ctx___call, sizeof(__pyx_k_Ctx___call), 0, 0, 1, 1},
  {&__pyx_n_s_Ctx___init, __pyx_k_Ctx___init, sizeof(__pyx_k_Ctx___init), 0, 0, 1, 1},
  {&__pyx_n_s_CythonArrayNode, __pyx_k_CythonArrayNode, sizeof(__pyx_k_CythonArrayNode), 0, 0, 1, 1},
  {&__pyx_n_s_Cython_Compiler_Parsing, __pyx_k_Cython_Compiler_Parsing, sizeof(__pyx_k_Cython_Compiler_Parsing), 0, 0, 1, 1},
  {&__pyx_n_u_DEDENT, __pyx_k_DEDENT, sizeof(__pyx_k_DEDENT), 0, 1, 0, 1},
  {&__pyx_n_u_DEF, __pyx_k_DEF, sizeof(__pyx_k_DEF), 0, 1, 0, 1},
  {&__pyx_kp_u_Declarator_should_be_empty, __pyx_k_Declarator_should_be_empty, sizeof(__pyx_k_Declarator_should_be_empty), 0, 1, 0, 0},
  {&__pyx_n_s_DecoratorNode, __pyx_k_DecoratorNode, sizeof(__pyx_k_DecoratorNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Decorators_can_only_be_followed, __pyx_k_Decorators_can_only_be_followed, sizeof(__pyx_k_Decorators_can_only_be_followed), 0, 1, 0, 0},
  {&__pyx_n_s_DefNode, __pyx_k_DefNode, sizeof(__pyx_k_DefNode), 0, 0, 1, 1},
  {&__pyx_n_s_DelStatNode, __pyx_k_DelStatNode, sizeof(__pyx_k_DelStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_DictComprehensionAppendNode, __pyx_k_DictComprehensionAppendNode, sizeof(__pyx_k_DictComprehensionAppendNode), 0, 0, 1, 1},
  {&__pyx_n_s_DictItemNode, __pyx_k_DictItemNode, sizeof(__pyx_k_DictItemNode), 0, 0, 1, 1},
  {&__pyx_n_s_DictNode, __pyx_k_DictNode, sizeof(__pyx_k_DictNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Duplicate_string_prefix_characte, __pyx_k_Duplicate_string_prefix_characte, sizeof(__pyx_k_Duplicate_string_prefix_characte), 0, 1, 0, 0},
  {&__pyx_n_u_ELIF, __pyx_k_ELIF, sizeof(__pyx_k_ELIF), 0, 1, 0, 1},
  {&__pyx_n_u_ELSE, __pyx_k_ELSE, sizeof(__pyx_k_ELSE), 0, 1, 0, 1},
  {&__pyx_n_u_END_STRING, __pyx_k_END_STRING, sizeof(__pyx_k_END_STRING), 0, 1, 0, 1},
  {&__pyx_n_u_EOF, __pyx_k_EOF, sizeof(__pyx_k_EOF), 0, 1, 0, 1},
  {&__pyx_n_u_ESCAPE, __pyx_k_ESCAPE, sizeof(__pyx_k_ESCAPE), 0, 1, 0, 1},
  {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1},
  {&__pyx_n_s_EllipsisNode, __pyx_k_EllipsisNode, sizeof(__pyx_k_EllipsisNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Empty_declarator, __pyx_k_Empty_declarator, sizeof(__pyx_k_Empty_declarator), 0, 1, 0, 0},
  {&__pyx_n_s_EncodedString, __pyx_k_EncodedString, sizeof(__pyx_k_EncodedString), 0, 0, 1, 1},
  {&__pyx_n_s_Errors, __pyx_k_Errors, sizeof(__pyx_k_Errors), 0, 0, 1, 1},
  {&__pyx_n_s_ExceptClauseNode, __pyx_k_ExceptClauseNode, sizeof(__pyx_k_ExceptClauseNode), 0, 0, 1, 1},
  {&__pyx_n_s_ExecStatNode, __pyx_k_ExecStatNode, sizeof(__pyx_k_ExecStatNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Executable_statement_not_allowed, __pyx_k_Executable_statement_not_allowed, sizeof(__pyx_k_Executable_statement_not_allowed), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_None, __pyx_k_Expected_None, sizeof(__pyx_k_Expected_None), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_a_newline, __pyx_k_Expected_a_newline, sizeof(__pyx_k_Expected_a_newline), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_a_newline_after_decorat, __pyx_k_Expected_a_newline_after_decorat, sizeof(__pyx_k_Expected_a_newline_after_decorat), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_an_identifier, __pyx_k_Expected_an_identifier, sizeof(__pyx_k_Expected_an_identifier), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_an_identifier_before, __pyx_k_Expected_an_identifier_before, sizeof(__pyx_k_Expected_an_identifier_before), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_an_identifier_found_s, __pyx_k_Expected_an_identifier_found_s, sizeof(__pyx_k_Expected_an_identifier_found_s), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_an_identifier_or_litera, __pyx_k_Expected_an_identifier_or_litera, sizeof(__pyx_k_Expected_an_identifier_or_litera), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_except_or_finally, __pyx_k_Expected_except_or_finally, sizeof(__pyx_k_Expected_except_or_finally), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_import_or_cimport, __pyx_k_Expected_import_or_cimport, sizeof(__pyx_k_Expected_import_or_cimport), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_object_or_type, __pyx_k_Expected_object_or_type, sizeof(__pyx_k_Expected_object_or_type), 0, 1, 0, 0},
  {&__pyx_kp_u_Expected_one_of, __pyx_k_Expected_one_of, sizeof(__pyx_k_Expected_one_of), 0, 1, 0, 0},
  {&__pyx_n_s_ExprNodes, __pyx_k_ExprNodes, sizeof(__pyx_k_ExprNodes), 0, 0, 1, 1},
  {&__pyx_n_s_ExprStatNode, __pyx_k_ExprStatNode, sizeof(__pyx_k_ExprStatNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Extension_type_definition_not_al, __pyx_k_Extension_type_definition_not_al, sizeof(__pyx_k_Extension_type_definition_not_al), 0, 1, 0, 0},
  {&__pyx_kp_u_Extension_types_cannot_be_declar, __pyx_k_Extension_types_cannot_be_declar, sizeof(__pyx_k_Extension_types_cannot_be_declar), 0, 1, 0, 0},
  {&__pyx_n_u_FLOAT, __pyx_k_FLOAT, sizeof(__pyx_k_FLOAT), 0, 1, 0, 1},
  {&__pyx_n_u_False, __pyx_k_False, sizeof(__pyx_k_False), 0, 1, 0, 1},
  {&__pyx_n_s_FileSourceDescriptor, __pyx_k_FileSourceDescriptor, sizeof(__pyx_k_FileSourceDescriptor), 0, 0, 1, 1},
  {&__pyx_n_s_FloatNode, __pyx_k_FloatNode, sizeof(__pyx_k_FloatNode), 0, 0, 1, 1},
  {&__pyx_n_s_ForStatNode, __pyx_k_ForStatNode, sizeof(__pyx_k_ForStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_FormattedValueNode, __pyx_k_FormattedValueNode, sizeof(__pyx_k_FormattedValueNode), 0, 0, 1, 1},
  {&__pyx_n_s_FromCImportStatNode, __pyx_k_FromCImportStatNode, sizeof(__pyx_k_FromCImportStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_FromImportStatNode, __pyx_k_FromImportStatNode, sizeof(__pyx_k_FromImportStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_FusedTypeNode, __pyx_k_FusedTypeNode, sizeof(__pyx_k_FusedTypeNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Fused_type_definition_not_allowe, __pyx_k_Fused_type_definition_not_allowe, sizeof(__pyx_k_Fused_type_definition_not_allowe), 0, 1, 0, 0},
  {&__pyx_n_s_Future, __pyx_k_Future, sizeof(__pyx_k_Future), 0, 0, 1, 1},
  {&__pyx_n_s_GILStatNode, __pyx_k_GILStatNode, sizeof(__pyx_k_GILStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_GeneralCallNode, __pyx_k_GeneralCallNode, sizeof(__pyx_k_GeneralCallNode), 0, 0, 1, 1},
  {&__pyx_n_s_GeneratorExpressionNode, __pyx_k_GeneratorExpressionNode, sizeof(__pyx_k_GeneratorExpressionNode), 0, 0, 1, 1},
  {&__pyx_n_s_GlobalNode, __pyx_k_GlobalNode, sizeof(__pyx_k_GlobalNode), 0, 0, 1, 1},
  {&__pyx_n_u_IDENT, __pyx_k_IDENT, sizeof(__pyx_k_IDENT), 0, 1, 0, 1},
  {&__pyx_n_u_IF, __pyx_k_IF, sizeof(__pyx_k_IF), 0, 1, 0, 1},
  {&__pyx_n_u_IMAG, __pyx_k_IMAG, sizeof(__pyx_k_IMAG), 0, 1, 0, 1},
  {&__pyx_n_u_INT, __pyx_k_INT, sizeof(__pyx_k_INT), 0, 1, 0, 1},
  {&__pyx_n_s_IdentifierStringNode, __pyx_k_IdentifierStringNode, sizeof(__pyx_k_IdentifierStringNode), 0, 0, 1, 1},
  {&__pyx_n_s_IfClauseNode, __pyx_k_IfClauseNode, sizeof(__pyx_k_IfClauseNode), 0, 0, 1, 1},
  {&__pyx_n_s_IfStatNode, __pyx_k_IfStatNode, sizeof(__pyx_k_IfStatNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Illegal_operand_for_inplace_oper, __pyx_k_Illegal_operand_for_inplace_oper, sizeof(__pyx_k_Illegal_operand_for_inplace_oper), 0, 1, 0, 0},
  {&__pyx_n_s_ImagNode, __pyx_k_ImagNode, sizeof(__pyx_k_ImagNode), 0, 0, 1, 1},
  {&__pyx_n_s_ImportNode, __pyx_k_ImportNode, sizeof(__pyx_k_ImportNode), 0, 0, 1, 1},
  {&__pyx_n_s_InPlaceAssignmentNode, __pyx_k_InPlaceAssignmentNode, sizeof(__pyx_k_InPlaceAssignmentNode), 0, 0, 1, 1},
  {&__pyx_n_s_IndexNode, __pyx_k_IndexNode, sizeof(__pyx_k_IndexNode), 0, 0, 1, 1},
  {&__pyx_n_s_IntNode, __pyx_k_IntNode, sizeof(__pyx_k_IntNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Invalid_class_visibility_s, __pyx_k_Invalid_class_visibility_s, sizeof(__pyx_k_Invalid_class_visibility_s), 0, 1, 0, 0},
  {&__pyx_kp_u_Invalid_hex_escape_s, __pyx_k_Invalid_hex_escape_s, sizeof(__pyx_k_Invalid_hex_escape_s), 0, 1, 0, 0},
  {&__pyx_kp_u_Invalid_string_prefix_for_charac, __pyx_k_Invalid_string_prefix_for_charac, sizeof(__pyx_k_Invalid_string_prefix_for_charac), 0, 1, 0, 0},
  {&__pyx_kp_u_Invalid_type_for_compile_time_co, __pyx_k_Invalid_type_for_compile_time_co, sizeof(__pyx_k_Invalid_type_for_compile_time_co), 0, 1, 0, 0},
  {&__pyx_kp_u_Invalid_unicode_escape_s, __pyx_k_Invalid_unicode_escape_s, sizeof(__pyx_k_Invalid_unicode_escape_s), 0, 1, 0, 0},
  {&__pyx_n_s_IteratorNode, __pyx_k_IteratorNode, sizeof(__pyx_k_IteratorNode), 0, 0, 1, 1},
  {&__pyx_n_s_JoinedStrNode, __pyx_k_JoinedStrNode, sizeof(__pyx_k_JoinedStrNode), 0, 0, 1, 1},
  {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
  {&__pyx_n_u_L, __pyx_k_L, sizeof(__pyx_k_L), 0, 1, 0, 1},
  {&__pyx_n_u_LL, __pyx_k_LL, sizeof(__pyx_k_LL), 0, 1, 0, 1},
  {&__pyx_n_s_LambdaNode, __pyx_k_LambdaNode, sizeof(__pyx_k_LambdaNode), 0, 0, 1, 1},
  {&__pyx_n_s_ListNode, __pyx_k_ListNode, sizeof(__pyx_k_ListNode), 0, 0, 1, 1},
  {&__pyx_n_s_MemoryViewSliceTypeNode, __pyx_k_MemoryViewSliceTypeNode, sizeof(__pyx_k_MemoryViewSliceTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_MergedDictNode, __pyx_k_MergedDictNode, sizeof(__pyx_k_MergedDictNode), 0, 0, 1, 1},
  {&__pyx_n_s_MergedSequenceNode, __pyx_k_MergedSequenceNode, sizeof(__pyx_k_MergedSequenceNode), 0, 0, 1, 1},
  {&__pyx_n_s_ModuleNode, __pyx_k_ModuleNode, sizeof(__pyx_k_ModuleNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Module_name_required_for_extern, __pyx_k_Module_name_required_for_extern, sizeof(__pyx_k_Module_name_required_for_extern), 0, 1, 0, 0},
  {&__pyx_n_u_NEWLINE, __pyx_k_NEWLINE, sizeof(__pyx_k_NEWLINE), 0, 1, 0, 1},
  {&__pyx_n_u_NULL, __pyx_k_NULL, sizeof(__pyx_k_NULL), 0, 1, 0, 1},
  {&__pyx_n_s_NameNode, __pyx_k_NameNode, sizeof(__pyx_k_NameNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Name_options_not_allowed_for_C_c, __pyx_k_Name_options_not_allowed_for_C_c, sizeof(__pyx_k_Name_options_not_allowed_for_C_c), 0, 1, 0, 0},
  {&__pyx_kp_u_Name_options_only_allowed_for_pu, __pyx_k_Name_options_only_allowed_for_pu, sizeof(__pyx_k_Name_options_only_allowed_for_pu), 0, 1, 0, 0},
  {&__pyx_kp_u_Need_at_least_one_type, __pyx_k_Need_at_least_one_type, sizeof(__pyx_k_Need_at_least_one_type), 0, 1, 0, 0},
  {&__pyx_n_s_NewExprNode, __pyx_k_NewExprNode, sizeof(__pyx_k_NewExprNode), 0, 0, 1, 1},
  {&__pyx_n_s_Node, __pyx_k_Node, sizeof(__pyx_k_Node), 0, 0, 1, 1},
  {&__pyx_n_s_Nodes, __pyx_k_Nodes, sizeof(__pyx_k_Nodes), 0, 0, 1, 1},
  {&__pyx_kp_u_Non_keyword_arg_following_keywor, __pyx_k_Non_keyword_arg_following_keywor, sizeof(__pyx_k_Non_keyword_arg_following_keywor), 0, 1, 0, 0},
  {&__pyx_n_u_None, __pyx_k_None, sizeof(__pyx_k_None), 0, 1, 0, 1},
  {&__pyx_n_s_NoneNode, __pyx_k_NoneNode, sizeof(__pyx_k_NoneNode), 0, 0, 1, 1},
  {&__pyx_n_s_NonlocalNode, __pyx_k_NonlocalNode, sizeof(__pyx_k_NonlocalNode), 0, 0, 1, 1},
  {&__pyx_n_s_NotNode, __pyx_k_NotNode, sizeof(__pyx_k_NotNode), 0, 0, 1, 1},
  {&__pyx_n_s_NullNode, __pyx_k_NullNode, sizeof(__pyx_k_NullNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Object_struct_name_specification, __pyx_k_Object_struct_name_specification, sizeof(__pyx_k_Object_struct_name_specification), 0, 1, 0, 0},
  {&__pyx_kp_u_Object_struct_name_specification_2, __pyx_k_Object_struct_name_specification_2, sizeof(__pyx_k_Object_struct_name_specification_2), 0, 1, 0, 0},
  {&__pyx_n_s_Options, __pyx_k_Options, sizeof(__pyx_k_Options), 0, 0, 1, 1},
  {&__pyx_kp_u_Overloading_operator_s_not_yet_s, __pyx_k_Overloading_operator_s_not_yet_s, sizeof(__pyx_k_Overloading_operator_s_not_yet_s), 0, 1, 0, 0},
  {&__pyx_n_s_PassStatNode, __pyx_k_PassStatNode, sizeof(__pyx_k_PassStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_PrimaryCmpNode, __pyx_k_PrimaryCmpNode, sizeof(__pyx_k_PrimaryCmpNode), 0, 0, 1, 1},
  {&__pyx_n_s_PrintStatNode, __pyx_k_PrintStatNode, sizeof(__pyx_k_PrintStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_PropertyNode, __pyx_k_PropertyNode, sizeof(__pyx_k_PropertyNode), 0, 0, 1, 1},
  {&__pyx_n_s_PyArgDeclNode, __pyx_k_PyArgDeclNode, sizeof(__pyx_k_PyArgDeclNode), 0, 0, 1, 1},
  {&__pyx_n_s_PyClassDefNode, __pyx_k_PyClassDefNode, sizeof(__pyx_k_PyClassDefNode), 0, 0, 1, 1},
  {&__pyx_n_u_Py_UCS4, __pyx_k_Py_UCS4, sizeof(__pyx_k_Py_UCS4), 0, 1, 0, 1},
  {&__pyx_n_u_Py_UNICODE, __pyx_k_Py_UNICODE, sizeof(__pyx_k_Py_UNICODE), 0, 1, 0, 1},
  {&__pyx_n_u_Py_hash_t, __pyx_k_Py_hash_t, sizeof(__pyx_k_Py_hash_t), 0, 1, 0, 1},
  {&__pyx_n_u_Py_ssize_t, __pyx_k_Py_ssize_t, sizeof(__pyx_k_Py_ssize_t), 0, 1, 0, 1},
  {&__pyx_n_s_PyrexScanner, __pyx_k_PyrexScanner, sizeof(__pyx_k_PyrexScanner), 0, 0, 1, 1},
  {&__pyx_kp_u_Python_3_requires_docstrings_to, __pyx_k_Python_3_requires_docstrings_to, sizeof(__pyx_k_Python_3_requires_docstrings_to), 0, 1, 0, 0},
  {&__pyx_kp_u_Python_function_cannot_be_declar, __pyx_k_Python_function_cannot_be_declar, sizeof(__pyx_k_Python_function_cannot_be_declar), 0, 1, 0, 0},
  {&__pyx_kp_u_Qualified_class_name_not_allowed, __pyx_k_Qualified_class_name_not_allowed, sizeof(__pyx_k_Qualified_class_name_not_allowed), 0, 1, 0, 0},
  {&__pyx_kp_u_Qualified_class_name_only_allowe, __pyx_k_Qualified_class_name_only_allowe, sizeof(__pyx_k_Qualified_class_name_only_allowe), 0, 1, 0, 0},
  {&__pyx_n_s_RaiseStatNode, __pyx_k_RaiseStatNode, sizeof(__pyx_k_RaiseStatNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Relation_directions_in_for_from, __pyx_k_Relation_directions_in_for_from, sizeof(__pyx_k_Relation_directions_in_for_from), 0, 1, 0, 0},
  {&__pyx_n_s_ReraiseStatNode, __pyx_k_ReraiseStatNode, sizeof(__pyx_k_ReraiseStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_ReturnStatNode, __pyx_k_ReturnStatNode, sizeof(__pyx_k_ReturnStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_Scanning, __pyx_k_Scanning, sizeof(__pyx_k_Scanning), 0, 0, 1, 1},
  {&__pyx_n_s_SetNode, __pyx_k_SetNode, sizeof(__pyx_k_SetNode), 0, 0, 1, 1},
  {&__pyx_n_s_SimpleCallNode, __pyx_k_SimpleCallNode, sizeof(__pyx_k_SimpleCallNode), 0, 0, 1, 1},
  {&__pyx_n_s_SingleAssignmentNode, __pyx_k_SingleAssignmentNode, sizeof(__pyx_k_SingleAssignmentNode), 0, 0, 1, 1},
  {&__pyx_n_s_SizeofTypeNode, __pyx_k_SizeofTypeNode, sizeof(__pyx_k_SizeofTypeNode), 0, 0, 1, 1},
  {&__pyx_n_s_SizeofVarNode, __pyx_k_SizeofVarNode, sizeof(__pyx_k_SizeofVarNode), 0, 0, 1, 1},
  {&__pyx_n_s_SliceIndexNode, __pyx_k_SliceIndexNode, sizeof(__pyx_k_SliceIndexNode), 0, 0, 1, 1},
  {&__pyx_n_s_SliceNode, __pyx_k_SliceNode, sizeof(__pyx_k_SliceNode), 0, 0, 1, 1},
  {&__pyx_n_s_StarredUnpackingNode, __pyx_k_StarredUnpackingNode, sizeof(__pyx_k_StarredUnpackingNode), 0, 0, 1, 1},
  {&__pyx_n_s_StatListNode, __pyx_k_StatListNode, sizeof(__pyx_k_StatListNode), 0, 0, 1, 1},
  {&__pyx_n_s_StrLiteralBuilder, __pyx_k_StrLiteralBuilder, sizeof(__pyx_k_StrLiteralBuilder), 0, 0, 1, 1},
  {&__pyx_n_s_StringEncoding, __pyx_k_StringEncoding, sizeof(__pyx_k_StringEncoding), 0, 0, 1, 1},
  {&__pyx_n_s_StringIO, __pyx_k_StringIO, sizeof(__pyx_k_StringIO), 0, 0, 1, 1},
  {&__pyx_n_s_StringNode, __pyx_k_StringNode, sizeof(__pyx_k_StringNode), 0, 0, 1, 1},
  {&__pyx_n_s_StringSourceDescriptor, __pyx_k_StringSourceDescriptor, sizeof(__pyx_k_StringSourceDescriptor), 0, 0, 1, 1},
  {&__pyx_kp_u_String_prefixes_b_and_f_cannot_b, __pyx_k_String_prefixes_b_and_f_cannot_b, sizeof(__pyx_k_String_prefixes_b_and_f_cannot_b), 0, 1, 0, 0},
  {&__pyx_kp_u_String_prefixes_b_and_u_cannot_b, __pyx_k_String_prefixes_b_and_u_cannot_b, sizeof(__pyx_k_String_prefixes_b_and_u_cannot_b), 0, 1, 0, 0},
  {&__pyx_kp_u_String_prefixes_u_and_f_cannot_b, __pyx_k_String_prefixes_u_and_f_cannot_b, sizeof(__pyx_k_String_prefixes_u_and_f_cannot_b), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_C_class_definiti, __pyx_k_Syntax_error_in_C_class_definiti, sizeof(__pyx_k_Syntax_error_in_C_class_definiti), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_C_class_definiti_2, __pyx_k_Syntax_error_in_C_class_definiti_2, sizeof(__pyx_k_Syntax_error_in_C_class_definiti_2), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_C_variable_decla, __pyx_k_Syntax_error_in_C_variable_decla, sizeof(__pyx_k_Syntax_error_in_C_variable_decla), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_Python_function, __pyx_k_Syntax_error_in_Python_function, sizeof(__pyx_k_Syntax_error_in_Python_function), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_ctypedef_stateme, __pyx_k_Syntax_error_in_ctypedef_stateme, sizeof(__pyx_k_Syntax_error_in_ctypedef_stateme), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_declarations, __pyx_k_Syntax_error_in_declarations, sizeof(__pyx_k_Syntax_error_in_declarations), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_doc_string, __pyx_k_Syntax_error_in_doc_string, sizeof(__pyx_k_Syntax_error_in_doc_string), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_enum_item_list, __pyx_k_Syntax_error_in_enum_item_list, sizeof(__pyx_k_Syntax_error_in_enum_item_list), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_include_statemen, __pyx_k_Syntax_error_in_include_statemen, sizeof(__pyx_k_Syntax_error_in_include_statemen), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_simple_statement, __pyx_k_Syntax_error_in_simple_statement, sizeof(__pyx_k_Syntax_error_in_simple_statement), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_statement_s_s, __pyx_k_Syntax_error_in_statement_s_s, sizeof(__pyx_k_Syntax_error_in_statement_s_s), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_string, __pyx_k_Syntax_error_in_string, sizeof(__pyx_k_Syntax_error_in_string), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_struct_or_union, __pyx_k_Syntax_error_in_struct_or_union, sizeof(__pyx_k_Syntax_error_in_struct_or_union), 0, 1, 0, 0},
  {&__pyx_kp_u_Syntax_error_in_template_functio, __pyx_k_Syntax_error_in_template_functio, sizeof(__pyx_k_Syntax_error_in_template_functio), 0, 1, 0, 0},
  {&__pyx_kp_u_Target_of_for_from_statement_mus, __pyx_k_Target_of_for_from_statement_mus, sizeof(__pyx_k_Target_of_for_from_statement_mus), 0, 1, 0, 0},
  {&__pyx_n_s_TemplatedTypeNode, __pyx_k_TemplatedTypeNode, sizeof(__pyx_k_TemplatedTypeNode), 0, 0, 1, 1},
  {&__pyx_n_u_True, __pyx_k_True, sizeof(__pyx_k_True), 0, 1, 0, 1},
  {&__pyx_n_s_TryExceptStatNode, __pyx_k_TryExceptStatNode, sizeof(__pyx_k_TryExceptStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_TryFinallyStatNode, __pyx_k_TryFinallyStatNode, sizeof(__pyx_k_TryFinallyStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_TupleNode, __pyx_k_TupleNode, sizeof(__pyx_k_TupleNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Type_object_name_specification_n, __pyx_k_Type_object_name_specification_n, sizeof(__pyx_k_Type_object_name_specification_n), 0, 1, 0, 0},
  {&__pyx_kp_u_Type_object_name_specification_r, __pyx_k_Type_object_name_specification_r, sizeof(__pyx_k_Type_object_name_specification_r), 0, 1, 0, 0},
  {&__pyx_kp_u_Type_object_name_specification_r_2, __pyx_k_Type_object_name_specification_r_2, sizeof(__pyx_k_Type_object_name_specification_r_2), 0, 1, 0, 0},
  {&__pyx_n_s_TypecastNode, __pyx_k_TypecastNode, sizeof(__pyx_k_TypecastNode), 0, 0, 1, 1},
  {&__pyx_n_u_U, __pyx_k_U, sizeof(__pyx_k_U), 0, 1, 0, 1},
  {&__pyx_kp_u_Unclosed_string_literal, __pyx_k_Unclosed_string_literal, sizeof(__pyx_k_Unclosed_string_literal), 0, 1, 0, 0},
  {&__pyx_kp_u_Unexpected_token_r_r_in_string_l, __pyx_k_Unexpected_token_r_r_in_string_l, sizeof(__pyx_k_Unexpected_token_r_r_in_string_l), 0, 1, 0, 0},
  {&__pyx_n_s_UnicodeLiteralBuilder, __pyx_k_UnicodeLiteralBuilder, sizeof(__pyx_k_UnicodeLiteralBuilder), 0, 0, 1, 1},
  {&__pyx_n_s_UnicodeNode, __pyx_k_UnicodeNode, sizeof(__pyx_k_UnicodeNode), 0, 0, 1, 1},
  {&__pyx_kp_u_Unknown_Unicode_character_name_s, __pyx_k_Unknown_Unicode_character_name_s, sizeof(__pyx_k_Unknown_Unicode_character_name_s), 0, 1, 0, 0},
  {&__pyx_kp_u_Unknown_type, __pyx_k_Unknown_type, sizeof(__pyx_k_Unknown_type), 0, 1, 0, 0},
  {&__pyx_kp_u_Unmatched_s, __pyx_k_Unmatched_s, sizeof(__pyx_k_Unmatched_s), 0, 1, 0, 0},
  {&__pyx_n_s_Utils, __pyx_k_Utils, sizeof(__pyx_k_Utils), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_kp_u_Variable_name_in_for_from_range, __pyx_k_Variable_name_in_for_from_range, sizeof(__pyx_k_Variable_name_in_for_from_range), 0, 1, 0, 0},
  {&__pyx_n_s_WhileStatNode, __pyx_k_WhileStatNode, sizeof(__pyx_k_WhileStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_WithStatNode, __pyx_k_WithStatNode, sizeof(__pyx_k_WithStatNode), 0, 0, 1, 1},
  {&__pyx_n_s_YieldExprNode, __pyx_k_YieldExprNode, sizeof(__pyx_k_YieldExprNode), 0, 0, 1, 1},
  {&__pyx_n_s_YieldFromExprNode, __pyx_k_YieldFromExprNode, sizeof(__pyx_k_YieldFromExprNode), 0, 0, 1, 1},
  {&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
  {&__pyx_kp_u__120, __pyx_k__120, sizeof(__pyx_k__120), 0, 1, 0, 0},
  {&__pyx_kp_u__121, __pyx_k__121, sizeof(__pyx_k__121), 0, 1, 0, 0},
  {&__pyx_kp_u__122, __pyx_k__122, sizeof(__pyx_k__122), 0, 1, 0, 0},
  {&__pyx_kp_u__123, __pyx_k__123, sizeof(__pyx_k__123), 0, 1, 0, 0},
  {&__pyx_kp_u__124, __pyx_k__124, sizeof(__pyx_k__124), 0, 1, 0, 0},
  {&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
  {&__pyx_kp_u__131, __pyx_k__131, sizeof(__pyx_k__131), 0, 1, 0, 0},
  {&__pyx_kp_u__138, __pyx_k__138, sizeof(__pyx_k__138), 0, 1, 0, 0},
  {&__pyx_kp_u__139, __pyx_k__139, sizeof(__pyx_k__139), 0, 1, 0, 0},
  {&__pyx_kp_u__145, __pyx_k__145, sizeof(__pyx_k__145), 0, 1, 0, 0},
  {&__pyx_kp_u__146, __pyx_k__146, sizeof(__pyx_k__146), 0, 1, 0, 0},
  {&__pyx_kp_u__147, __pyx_k__147, sizeof(__pyx_k__147), 0, 1, 0, 0},
  {&__pyx_kp_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
  {&__pyx_kp_u__16, __pyx_k__16, sizeof(__pyx_k__16), 0, 1, 0, 0},
  {&__pyx_kp_u__161, __pyx_k__161, sizeof(__pyx_k__161), 0, 1, 0, 0},
  {&__pyx_kp_u__162, __pyx_k__162, sizeof(__pyx_k__162), 0, 1, 0, 0},
  {&__pyx_kp_u__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 1, 0, 0},
  {&__pyx_kp_u__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 1, 0, 0},
  {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
  {&__pyx_kp_u__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
  {&__pyx_kp_u__22, __pyx_k__22, sizeof(__pyx_k__22), 0, 1, 0, 0},
  {&__pyx_kp_u__23, __pyx_k__23, sizeof(__pyx_k__23), 0, 1, 0, 0},
  {&__pyx_kp_u__25, __pyx_k__25, sizeof(__pyx_k__25), 0, 1, 0, 0},
  {&__pyx_kp_u__26, __pyx_k__26, sizeof(__pyx_k__26), 0, 1, 0, 0},
  {&__pyx_kp_u__28, __pyx_k__28, sizeof(__pyx_k__28), 0, 1, 0, 0},
  {&__pyx_kp_u__29, __pyx_k__29, sizeof(__pyx_k__29), 0, 1, 0, 0},
  {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
  {&__pyx_kp_u__30, __pyx_k__30, sizeof(__pyx_k__30), 0, 1, 0, 0},
  {&__pyx_kp_u__31, __pyx_k__31, sizeof(__pyx_k__31), 0, 1, 0, 0},
  {&__pyx_kp_u__36, __pyx_k__36, sizeof(__pyx_k__36), 0, 1, 0, 0},
  {&__pyx_kp_u__37, __pyx_k__37, sizeof(__pyx_k__37), 0, 1, 0, 0},
  {&__pyx_kp_u__38, __pyx_k__38, sizeof(__pyx_k__38), 0, 1, 0, 0},
  {&__pyx_kp_u__40, __pyx_k__40, sizeof(__pyx_k__40), 0, 1, 0, 0},
  {&__pyx_kp_u__43, __pyx_k__43, sizeof(__pyx_k__43), 0, 1, 0, 0},
  {&__pyx_kp_u__47, __pyx_k__47, sizeof(__pyx_k__47), 0, 1, 0, 0},
  {&__pyx_kp_u__48, __pyx_k__48, sizeof(__pyx_k__48), 0, 1, 0, 0},
  {&__pyx_n_s__50, __pyx_k__50, sizeof(__pyx_k__50), 0, 0, 1, 1},
  {&__pyx_kp_u__50, __pyx_k__50, sizeof(__pyx_k__50), 0, 1, 0, 0},
  {&__pyx_kp_u__54, __pyx_k__54, sizeof(__pyx_k__54), 0, 1, 0, 0},
  {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
  {&__pyx_kp_u__62, __pyx_k__62, sizeof(__pyx_k__62), 0, 1, 0, 0},
  {&__pyx_kp_u__63, __pyx_k__63, sizeof(__pyx_k__63), 0, 1, 0, 0},
  {&__pyx_kp_u__66, __pyx_k__66, sizeof(__pyx_k__66), 0, 1, 0, 0},
  {&__pyx_kp_u__67, __pyx_k__67, sizeof(__pyx_k__67), 0, 1, 0, 0},
  {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
  {&__pyx_kp_u__71, __pyx_k__71, sizeof(__pyx_k__71), 0, 1, 0, 0},
  {&__pyx_kp_u__73, __pyx_k__73, sizeof(__pyx_k__73), 0, 1, 0, 0},
  {&__pyx_kp_u__76, __pyx_k__76, sizeof(__pyx_k__76), 0, 1, 0, 0},
  {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0},
  {&__pyx_kp_u__83, __pyx_k__83, sizeof(__pyx_k__83), 0, 1, 0, 0},
  {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0},
  {&__pyx_kp_u__96, __pyx_k__96, sizeof(__pyx_k__96), 0, 1, 0, 0},
  {&__pyx_kp_u_a_starred_assignment_target_must, __pyx_k_a_starred_assignment_target_must, sizeof(__pyx_k_a_starred_assignment_target_must), 0, 1, 0, 0},
  {&__pyx_n_s_absolute_import, __pyx_k_absolute_import, sizeof(__pyx_k_absolute_import), 0, 0, 1, 1},
  {&__pyx_n_s_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 1},
  {&__pyx_n_s_allow_struct_enum_decorator, __pyx_k_allow_struct_enum_decorator, sizeof(__pyx_k_allow_struct_enum_decorator), 0, 0, 1, 1},
  {&__pyx_n_u_and, __pyx_k_and, sizeof(__pyx_k_and), 0, 1, 0, 1},
  {&__pyx_n_s_annotated, __pyx_k_annotated, sizeof(__pyx_k_annotated), 0, 0, 1, 1},
  {&__pyx_n_s_annotation, __pyx_k_annotation, sizeof(__pyx_k_annotation), 0, 0, 1, 1},
  {&__pyx_n_s_api, __pyx_k_api, sizeof(__pyx_k_api), 0, 0, 1, 1},
  {&__pyx_n_u_api, __pyx_k_api, sizeof(__pyx_k_api), 0, 1, 0, 1},
  {&__pyx_kp_u_api_not_allowed_with_this_state, __pyx_k_api_not_allowed_with_this_state, sizeof(__pyx_k_api_not_allowed_with_this_state), 0, 1, 0, 0},
  {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
  {&__pyx_n_s_append_charval, __pyx_k_append_charval, sizeof(__pyx_k_append_charval), 0, 0, 1, 1},
  {&__pyx_n_s_append_newline, __pyx_k_append_newline, sizeof(__pyx_k_append_newline), 0, 0, 1, 1},
  {&__pyx_n_s_append_uescape, __pyx_k_append_uescape, sizeof(__pyx_k_append_uescape), 0, 0, 1, 1},
  {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1},
  {&__pyx_n_s_arg_tuple, __pyx_k_arg_tuple, sizeof(__pyx_k_arg_tuple), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_n_u_as, __pyx_k_as, sizeof(__pyx_k_as), 0, 1, 0, 1},
  {&__pyx_n_s_as_name, __pyx_k_as_name, sizeof(__pyx_k_as_name), 0, 0, 1, 1},
  {&__pyx_n_u_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 1, 0, 1},
  {&__pyx_n_u_assert, __pyx_k_assert, sizeof(__pyx_k_assert), 0, 1, 0, 1},
  {&__pyx_n_s_assignable, __pyx_k_assignable, sizeof(__pyx_k_assignable), 0, 0, 1, 1},
  {&__pyx_n_u_async, __pyx_k_async, sizeof(__pyx_k_async), 0, 1, 0, 1},
  {&__pyx_n_s_attribute, __pyx_k_attribute, sizeof(__pyx_k_attribute), 0, 0, 1, 1},
  {&__pyx_n_s_attributes, __pyx_k_attributes, sizeof(__pyx_k_attributes), 0, 0, 1, 1},
  {&__pyx_n_u_await, __pyx_k_await, sizeof(__pyx_k_await), 0, 1, 0, 1},
  {&__pyx_n_s_axes, __pyx_k_axes, sizeof(__pyx_k_axes), 0, 0, 1, 1},
  {&__pyx_n_u_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 1, 0, 1},
  {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1},
  {&__pyx_n_s_base_class_module, __pyx_k_base_class_module, sizeof(__pyx_k_base_class_module), 0, 0, 1, 1},
  {&__pyx_n_s_base_class_name, __pyx_k_base_class_name, sizeof(__pyx_k_base_class_name), 0, 0, 1, 1},
  {&__pyx_n_s_base_classes, __pyx_k_base_classes, sizeof(__pyx_k_base_classes), 0, 0, 1, 1},
  {&__pyx_n_s_base_type, __pyx_k_base_type, sizeof(__pyx_k_base_type), 0, 0, 1, 1},
  {&__pyx_n_s_base_type_node, __pyx_k_base_type_node, sizeof(__pyx_k_base_type_node), 0, 0, 1, 1},
  {&__pyx_n_s_bases, __pyx_k_bases, sizeof(__pyx_k_bases), 0, 0, 1, 1},
  {&__pyx_n_s_binop_node, __pyx_k_binop_node, sizeof(__pyx_k_binop_node), 0, 0, 1, 1},
  {&__pyx_n_u_bint, __pyx_k_bint, sizeof(__pyx_k_bint), 0, 1, 0, 1},
  {&__pyx_n_s_body, __pyx_k_body, sizeof(__pyx_k_body), 0, 0, 1, 1},
  {&__pyx_n_u_bool, __pyx_k_bool, sizeof(__pyx_k_bool), 0, 1, 0, 1},
  {&__pyx_n_s_bound1, __pyx_k_bound1, sizeof(__pyx_k_bound1), 0, 0, 1, 1},
  {&__pyx_n_s_bound2, __pyx_k_bound2, sizeof(__pyx_k_bound2), 0, 0, 1, 1},
  {&__pyx_n_u_braces, __pyx_k_braces, sizeof(__pyx_k_braces), 0, 1, 0, 1},
  {&__pyx_n_u_break, __pyx_k_break, sizeof(__pyx_k_break), 0, 1, 0, 1},
  {&__pyx_n_u_by, __pyx_k_by, sizeof(__pyx_k_by), 0, 1, 0, 1},
  {&__pyx_n_s_bytes, __pyx_k_bytes, sizeof(__pyx_k_bytes), 0, 0, 1, 1},
  {&__pyx_kp_u_bytes_can_only_contain_ASCII_lit, __pyx_k_bytes_can_only_contain_ASCII_lit, sizeof(__pyx_k_bytes_can_only_contain_ASCII_lit), 0, 1, 0, 0},
  {&__pyx_n_s_bytes_literal, __pyx_k_bytes_literal, sizeof(__pyx_k_bytes_literal), 0, 0, 1, 1},
  {&__pyx_n_s_bytes_value, __pyx_k_bytes_value, sizeof(__pyx_k_bytes_value), 0, 0, 1, 1},
  {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1},
  {&__pyx_n_u_c_class, __pyx_k_c_class, sizeof(__pyx_k_c_class), 0, 1, 0, 1},
  {&__pyx_n_u_c_class_pxd, __pyx_k_c_class_pxd, sizeof(__pyx_k_c_class_pxd), 0, 1, 0, 1},
  {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1},
  {&__pyx_n_s_calling_convention, __pyx_k_calling_convention, sizeof(__pyx_k_calling_convention), 0, 0, 1, 1},
  {&__pyx_n_s_calling_convention_allowed, __pyx_k_calling_convention_allowed, sizeof(__pyx_k_calling_convention_allowed), 0, 0, 1, 1},
  {&__pyx_n_s_cascade, __pyx_k_cascade, sizeof(__pyx_k_cascade), 0, 0, 1, 1},
  {&__pyx_n_s_cause, __pyx_k_cause, sizeof(__pyx_k_cause), 0, 0, 1, 1},
  {&__pyx_n_u_cdecl, __pyx_k_cdecl, sizeof(__pyx_k_cdecl), 0, 1, 0, 1},
  {&__pyx_n_u_cdef, __pyx_k_cdef, sizeof(__pyx_k_cdef), 0, 1, 0, 1},
  {&__pyx_kp_u_cdef_blocks_cannot_be_declared_c, __pyx_k_cdef_blocks_cannot_be_declared_c, sizeof(__pyx_k_cdef_blocks_cannot_be_declared_c), 0, 1, 0, 0},
  {&__pyx_kp_u_cdef_extern_blocks_cannot_be_dec, __pyx_k_cdef_extern_blocks_cannot_be_dec, sizeof(__pyx_k_cdef_extern_blocks_cannot_be_dec), 0, 1, 0, 0},
  {&__pyx_n_s_cdef_flag, __pyx_k_cdef_flag, sizeof(__pyx_k_cdef_flag), 0, 0, 1, 1},
  {&__pyx_kp_u_cdef_statement_not_allowed_here, __pyx_k_cdef_statement_not_allowed_here, sizeof(__pyx_k_cdef_statement_not_allowed_here), 0, 1, 0, 0},
  {&__pyx_n_u_char, __pyx_k_char, sizeof(__pyx_k_char), 0, 1, 0, 1},
  {&__pyx_n_s_char_from_escape_sequence, __pyx_k_char_from_escape_sequence, sizeof(__pyx_k_char_from_escape_sequence), 0, 0, 1, 1},
  {&__pyx_n_u_cimport, __pyx_k_cimport, sizeof(__pyx_k_cimport), 0, 1, 0, 1},
  {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
  {&__pyx_n_u_class_2, __pyx_k_class_2, sizeof(__pyx_k_class_2), 0, 1, 0, 1},
  {&__pyx_kp_u_class_definition_not_allowed_her, __pyx_k_class_definition_not_allowed_her, sizeof(__pyx_k_class_definition_not_allowed_her), 0, 1, 0, 0},
  {&__pyx_n_s_class_name, __pyx_k_class_name, sizeof(__pyx_k_class_name), 0, 0, 1, 1},
  {&__pyx_n_s_cmethod_flag, __pyx_k_cmethod_flag, sizeof(__pyx_k_cmethod_flag), 0, 0, 1, 1},
  {&__pyx_n_s_cname, __pyx_k_cname, sizeof(__pyx_k_cname), 0, 0, 1, 1},
  {&__pyx_n_u_commentline, __pyx_k_commentline, sizeof(__pyx_k_commentline), 0, 1, 0, 1},
  {&__pyx_n_s_compile, __pyx_k_compile, sizeof(__pyx_k_compile), 0, 0, 1, 1},
  {&__pyx_n_s_compile_time_value, __pyx_k_compile_time_value, sizeof(__pyx_k_compile_time_value), 0, 0, 1, 1},
  {&__pyx_n_s_complex, __pyx_k_complex, sizeof(__pyx_k_complex), 0, 0, 1, 1},
  {&__pyx_n_u_complex, __pyx_k_complex, sizeof(__pyx_k_complex), 0, 1, 0, 1},
  {&__pyx_n_s_components, __pyx_k_components, sizeof(__pyx_k_components), 0, 0, 1, 1},
  {&__pyx_n_s_cond, __pyx_k_cond, sizeof(__pyx_k_cond), 0, 0, 1, 1},
  {&__pyx_n_s_condition, __pyx_k_condition, sizeof(__pyx_k_condition), 0, 0, 1, 1},
  {&__pyx_n_u_const, __pyx_k_const, sizeof(__pyx_k_const), 0, 1, 0, 1},
  {&__pyx_n_s_constant_result, __pyx_k_constant_result, sizeof(__pyx_k_constant_result), 0, 0, 1, 1},
  {&__pyx_n_u_continue, __pyx_k_continue, sizeof(__pyx_k_continue), 0, 1, 0, 1},
  {&__pyx_n_s_conversion_char, __pyx_k_conversion_char, sizeof(__pyx_k_conversion_char), 0, 0, 1, 1},
  {&__pyx_n_u_cpdef, __pyx_k_cpdef, sizeof(__pyx_k_cpdef), 0, 1, 0, 1},
  {&__pyx_n_u_cpp_class, __pyx_k_cpp_class, sizeof(__pyx_k_cpp_class), 0, 1, 0, 1},
  {&__pyx_n_s_cppclass, __pyx_k_cppclass, sizeof(__pyx_k_cppclass), 0, 0, 1, 1},
  {&__pyx_n_u_cppclass, __pyx_k_cppclass, sizeof(__pyx_k_cppclass), 0, 1, 0, 1},
  {&__pyx_n_s_create_wrapper, __pyx_k_create_wrapper, sizeof(__pyx_k_create_wrapper), 0, 0, 1, 1},
  {&__pyx_n_s_ctx, __pyx_k_ctx, sizeof(__pyx_k_ctx), 0, 0, 1, 1},
  {&__pyx_n_u_ctypedef, __pyx_k_ctypedef, sizeof(__pyx_k_ctypedef), 0, 1, 0, 1},
  {&__pyx_kp_u_ctypedef_statement_not_allowed_h, __pyx_k_ctypedef_statement_not_allowed_h, sizeof(__pyx_k_ctypedef_statement_not_allowed_h), 0, 1, 0, 0},
  {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1},
  {&__pyx_n_s_declarator, __pyx_k_declarator, sizeof(__pyx_k_declarator), 0, 0, 1, 1},
  {&__pyx_n_s_declarators, __pyx_k_declarators, sizeof(__pyx_k_declarators), 0, 0, 1, 1},
  {&__pyx_n_s_decorator, __pyx_k_decorator, sizeof(__pyx_k_decorator), 0, 0, 1, 1},
  {&__pyx_kp_u_decorator_not_allowed_here, __pyx_k_decorator_not_allowed_here, sizeof(__pyx_k_decorator_not_allowed_here), 0, 1, 0, 0},
  {&__pyx_n_s_decorators, __pyx_k_decorators, sizeof(__pyx_k_decorators), 0, 0, 1, 1},
  {&__pyx_n_u_def, __pyx_k_def, sizeof(__pyx_k_def), 0, 1, 0, 1},
  {&__pyx_kp_u_def_statement_not_allowed_here, __pyx_k_def_statement_not_allowed_here, sizeof(__pyx_k_def_statement_not_allowed_here), 0, 1, 0, 0},
  {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1},
  {&__pyx_kp_u_default_values_cannot_be_specifi, __pyx_k_default_values_cannot_be_specifi, sizeof(__pyx_k_default_values_cannot_be_specifi), 0, 1, 0, 0},
  {&__pyx_n_u_del, __pyx_k_del, sizeof(__pyx_k_del), 0, 1, 0, 1},
  {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
  {&__pyx_n_u_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 1, 0, 1},
  {&__pyx_n_s_dict_type, __pyx_k_dict_type, sizeof(__pyx_k_dict_type), 0, 0, 1, 1},
  {&__pyx_n_s_dimension, __pyx_k_dimension, sizeof(__pyx_k_dimension), 0, 0, 1, 1},
  {&__pyx_n_s_directive_comments, __pyx_k_directive_comments, sizeof(__pyx_k_directive_comments), 0, 0, 1, 1},
  {&__pyx_n_s_division, __pyx_k_division, sizeof(__pyx_k_division), 0, 0, 1, 1},
  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
  {&__pyx_n_s_doc_2, __pyx_k_doc_2, sizeof(__pyx_k_doc_2), 0, 0, 1, 1},
  {&__pyx_n_u_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 1, 0, 1},
  {&__pyx_n_u_elif, __pyx_k_elif, sizeof(__pyx_k_elif), 0, 1, 0, 1},
  {&__pyx_n_u_else, __pyx_k_else, sizeof(__pyx_k_else), 0, 1, 0, 1},
  {&__pyx_n_s_else_clause, __pyx_k_else_clause, sizeof(__pyx_k_else_clause), 0, 0, 1, 1},
  {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1},
  {&__pyx_kp_u_empty_expression_not_allowed_in, __pyx_k_empty_expression_not_allowed_in, sizeof(__pyx_k_empty_expression_not_allowed_in), 0, 1, 0, 0},
  {&__pyx_n_s_encoding, __pyx_k_encoding, sizeof(__pyx_k_encoding), 0, 0, 1, 1},
  {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1},
  {&__pyx_n_u_enum, __pyx_k_enum, sizeof(__pyx_k_enum), 0, 1, 0, 1},
  {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
  {&__pyx_n_s_exc_tb, __pyx_k_exc_tb, sizeof(__pyx_k_exc_tb), 0, 0, 1, 1},
  {&__pyx_n_s_exc_type, __pyx_k_exc_type, sizeof(__pyx_k_exc_type), 0, 0, 1, 1},
  {&__pyx_n_s_exc_value, __pyx_k_exc_value, sizeof(__pyx_k_exc_value), 0, 0, 1, 1},
  {&__pyx_n_u_except, __pyx_k_except, sizeof(__pyx_k_except), 0, 1, 0, 1},
  {&__pyx_n_s_except_clauses, __pyx_k_except_clauses, sizeof(__pyx_k_except_clauses), 0, 0, 1, 1},
  {&__pyx_n_s_exception_check, __pyx_k_exception_check, sizeof(__pyx_k_exception_check), 0, 0, 1, 1},
  {&__pyx_n_s_exception_value, __pyx_k_exception_value, sizeof(__pyx_k_exception_value), 0, 0, 1, 1},
  {&__pyx_n_u_exec, __pyx_k_exec, sizeof(__pyx_k_exec), 0, 1, 0, 1},
  {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
  {&__pyx_kp_u_expected_expression_found, __pyx_k_expected_expression_found, sizeof(__pyx_k_expected_expression_found), 0, 1, 0, 0},
  {&__pyx_kp_u_expected_one_of_def_for_with_aft, __pyx_k_expected_one_of_def_for_with_aft, sizeof(__pyx_k_expected_one_of_def_for_with_aft), 0, 1, 0, 0},
  {&__pyx_kp_u_expected_tuple_of_length_2_or_3, __pyx_k_expected_tuple_of_length_2_or_3, sizeof(__pyx_k_expected_tuple_of_length_2_or_3), 0, 1, 0, 0},
  {&__pyx_n_s_expr, __pyx_k_expr, sizeof(__pyx_k_expr), 0, 0, 1, 1},
  {&__pyx_n_s_extend, __pyx_k_extend, sizeof(__pyx_k_extend), 0, 0, 1, 1},
  {&__pyx_n_u_extern, __pyx_k_extern, sizeof(__pyx_k_extern), 0, 1, 0, 1},
  {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
  {&__pyx_n_u_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 1, 0, 1},
  {&__pyx_kp_u_f_string_not_allowed_here, __pyx_k_f_string_not_allowed_here, sizeof(__pyx_k_f_string_not_allowed_here), 0, 1, 0, 0},
  {&__pyx_n_s_false_val, __pyx_k_false_val, sizeof(__pyx_k_false_val), 0, 0, 1, 1},
  {&__pyx_n_u_fastcall, __pyx_k_fastcall, sizeof(__pyx_k_fastcall), 0, 1, 0, 1},
  {&__pyx_n_s_fatal, __pyx_k_fatal, sizeof(__pyx_k_fatal), 0, 0, 1, 1},
  {&__pyx_n_u_finally, __pyx_k_finally, sizeof(__pyx_k_finally), 0, 1, 0, 1},
  {&__pyx_n_s_finally_clause, __pyx_k_finally_clause, sizeof(__pyx_k_finally_clause), 0, 0, 1, 1},
  {&__pyx_n_s_find_conversion_func, __pyx_k_find_conversion_func, sizeof(__pyx_k_find_conversion_func), 0, 0, 1, 1},
  {&__pyx_n_s_find_include_file, __pyx_k_find_include_file, sizeof(__pyx_k_find_include_file), 0, 0, 1, 1},
  {&__pyx_n_u_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 1, 0, 1},
  {&__pyx_n_u_for, __pyx_k_for, sizeof(__pyx_k_for), 0, 1, 0, 1},
  {&__pyx_n_s_force_py3_semantics, __pyx_k_force_py3_semantics, sizeof(__pyx_k_force_py3_semantics), 0, 0, 1, 1},
  {&__pyx_n_s_format_spec, __pyx_k_format_spec, sizeof(__pyx_k_format_spec), 0, 0, 1, 1},
  {&__pyx_kp_u_format_string_cannot_include, __pyx_k_format_string_cannot_include, sizeof(__pyx_k_format_string_cannot_include), 0, 1, 0, 0},
  {&__pyx_n_u_from, __pyx_k_from, sizeof(__pyx_k_from), 0, 1, 0, 1},
  {&__pyx_kp_u_from___future___imports_must_occ, __pyx_k_from___future___imports_must_occ, sizeof(__pyx_k_from___future___imports_must_occ), 0, 1, 0, 0},
  {&__pyx_n_s_full_module_name, __pyx_k_full_module_name, sizeof(__pyx_k_full_module_name), 0, 0, 1, 1},
  {&__pyx_n_s_function, __pyx_k_function, sizeof(__pyx_k_function), 0, 0, 1, 1},
  {&__pyx_n_u_function, __pyx_k_function, sizeof(__pyx_k_function), 0, 1, 0, 1},
  {&__pyx_n_s_functools, __pyx_k_functools, sizeof(__pyx_k_functools), 0, 0, 1, 1},
  {&__pyx_n_u_fused, __pyx_k_fused, sizeof(__pyx_k_fused), 0, 1, 0, 1},
  {&__pyx_n_u_future, __pyx_k_future, sizeof(__pyx_k_future), 0, 1, 0, 1},
  {&__pyx_n_s_future_directives, __pyx_k_future_directives, sizeof(__pyx_k_future_directives), 0, 0, 1, 1},
  {&__pyx_kp_u_future_feature_s_is_not_defined, __pyx_k_future_feature_s_is_not_defined, sizeof(__pyx_k_future_feature_s_is_not_defined), 0, 1, 0, 0},
  {&__pyx_n_s_getchar, __pyx_k_getchar, sizeof(__pyx_k_getchar), 0, 0, 1, 1},
  {&__pyx_n_s_getstrings, __pyx_k_getstrings, sizeof(__pyx_k_getstrings), 0, 0, 1, 1},
  {&__pyx_n_u_gil, __pyx_k_gil, sizeof(__pyx_k_gil), 0, 1, 0, 1},
  {&__pyx_n_u_global, __pyx_k_global, sizeof(__pyx_k_global), 0, 1, 0, 1},
  {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1},
  {&__pyx_n_s_has_local_scope, __pyx_k_has_local_scope, sizeof(__pyx_k_has_local_scope), 0, 0, 1, 1},
  {&__pyx_n_s_has_varargs, __pyx_k_has_varargs, sizeof(__pyx_k_has_varargs), 0, 0, 1, 1},
  {&__pyx_n_u_if, __pyx_k_if, sizeof(__pyx_k_if), 0, 1, 0, 1},
  {&__pyx_n_s_if_clauses, __pyx_k_if_clauses, sizeof(__pyx_k_if_clauses), 0, 0, 1, 1},
  {&__pyx_n_s_ignore_unknown, __pyx_k_ignore_unknown, sizeof(__pyx_k_ignore_unknown), 0, 0, 1, 1},
  {&__pyx_kp_u_illegal_integer_literal_syntax_i, __pyx_k_illegal_integer_literal_syntax_i, sizeof(__pyx_k_illegal_integer_literal_syntax_i), 0, 1, 0, 0},
  {&__pyx_n_u_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 1, 0, 1},
  {&__pyx_n_s_import_2, __pyx_k_import_2, sizeof(__pyx_k_import_2), 0, 0, 1, 1},
  {&__pyx_n_s_imported_names, __pyx_k_imported_names, sizeof(__pyx_k_imported_names), 0, 0, 1, 1},
  {&__pyx_n_u_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 1, 0, 1},
  {&__pyx_n_s_in_pxd, __pyx_k_in_pxd, sizeof(__pyx_k_in_pxd), 0, 0, 1, 1},
  {&__pyx_n_s_in_pyfunc, __pyx_k_in_pyfunc, sizeof(__pyx_k_in_pyfunc), 0, 0, 1, 1},
  {&__pyx_n_u_include, __pyx_k_include, sizeof(__pyx_k_include), 0, 1, 0, 1},
  {&__pyx_n_s_include_file, __pyx_k_include_file, sizeof(__pyx_k_include_file), 0, 0, 1, 1},
  {&__pyx_kp_u_include_statement_not_allowed_he, __pyx_k_include_statement_not_allowed_he, sizeof(__pyx_k_include_statement_not_allowed_he), 0, 1, 0, 0},
  {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
  {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
  {&__pyx_n_s_initial_pos, __pyx_k_initial_pos, sizeof(__pyx_k_initial_pos), 0, 0, 1, 1},
  {&__pyx_n_u_inline, __pyx_k_inline, sizeof(__pyx_k_inline), 0, 1, 0, 1},
  {&__pyx_n_u_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 1, 0, 1},
  {&__pyx_n_s_intern_ustring, __pyx_k_intern_ustring, sizeof(__pyx_k_intern_ustring), 0, 0, 1, 1},
  {&__pyx_kp_u_internal_parser_configuration_er, __pyx_k_internal_parser_configuration_er, sizeof(__pyx_k_internal_parser_configuration_er), 0, 1, 0, 0},
  {&__pyx_kp_u_invalid_character_literal_r, __pyx_k_invalid_character_literal_r, sizeof(__pyx_k_invalid_character_literal_r), 0, 1, 0, 0},
  {&__pyx_kp_u_invalid_conversion_char_at_end_o, __pyx_k_invalid_conversion_char_at_end_o, sizeof(__pyx_k_invalid_conversion_char_at_end_o), 0, 1, 0, 0},
  {&__pyx_kp_u_invalid_conversion_character_s, __pyx_k_invalid_conversion_character_s, sizeof(__pyx_k_invalid_conversion_character_s), 0, 1, 0, 0},
  {&__pyx_kp_u_invalid_string_kind_s, __pyx_k_invalid_string_kind_s, sizeof(__pyx_k_invalid_string_kind_s), 0, 1, 0, 0},
  {&__pyx_kp_u_invalid_syntax, __pyx_k_invalid_syntax, sizeof(__pyx_k_invalid_syntax), 0, 1, 0, 0},
  {&__pyx_n_s_io, __pyx_k_io, sizeof(__pyx_k_io), 0, 0, 1, 1},
  {&__pyx_n_u_is, __pyx_k_is, sizeof(__pyx_k_is), 0, 1, 0, 1},
  {&__pyx_n_s_is_absolute, __pyx_k_is_absolute, sizeof(__pyx_k_is_absolute), 0, 0, 1, 1},
  {&__pyx_n_s_is_async, __pyx_k_is_async, sizeof(__pyx_k_is_async), 0, 0, 1, 1},
  {&__pyx_n_s_is_async_def, __pyx_k_is_async_def, sizeof(__pyx_k_is_async_def), 0, 0, 1, 1},
  {&__pyx_n_s_is_basic_c_type, __pyx_k_is_basic_c_type, sizeof(__pyx_k_is_basic_c_type), 0, 0, 1, 1},
  {&__pyx_n_s_is_c_literal, __pyx_k_is_c_literal, sizeof(__pyx_k_is_c_literal), 0, 0, 1, 1},
  {&__pyx_n_s_is_const_method, __pyx_k_is_const_method, sizeof(__pyx_k_is_const_method), 0, 0, 1, 1},
  {&__pyx_n_s_is_dict_literal, __pyx_k_is_dict_literal, sizeof(__pyx_k_is_dict_literal), 0, 0, 1, 1},
  {&__pyx_n_s_is_except_as, __pyx_k_is_except_as, sizeof(__pyx_k_is_except_as), 0, 0, 1, 1},
  {&__pyx_n_s_is_name, __pyx_k_is_name, sizeof(__pyx_k_is_name), 0, 0, 1, 1},
  {&__pyx_n_u_is_not, __pyx_k_is_not, sizeof(__pyx_k_is_not), 0, 1, 0, 1},
  {&__pyx_n_s_is_self_arg, __pyx_k_is_self_arg, sizeof(__pyx_k_is_self_arg), 0, 0, 1, 1},
  {&__pyx_n_s_is_set_literal, __pyx_k_is_set_literal, sizeof(__pyx_k_is_set_literal), 0, 0, 1, 1},
  {&__pyx_n_s_is_starred, __pyx_k_is_starred, sizeof(__pyx_k_is_starred), 0, 0, 1, 1},
  {&__pyx_n_s_is_string_literal, __pyx_k_is_string_literal, sizeof(__pyx_k_is_string_literal), 0, 0, 1, 1},
  {&__pyx_n_s_is_type, __pyx_k_is_type, sizeof(__pyx_k_is_type), 0, 0, 1, 1},
  {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
  {&__pyx_kp_u_iterable_unpacking_cannot_be_use, __pyx_k_iterable_unpacking_cannot_be_use, sizeof(__pyx_k_iterable_unpacking_cannot_be_use), 0, 1, 0, 0},
  {&__pyx_n_s_iterator, __pyx_k_iterator, sizeof(__pyx_k_iterator), 0, 0, 1, 1},
  {&__pyx_n_s_join_bytes, __pyx_k_join_bytes, sizeof(__pyx_k_join_bytes), 0, 0, 1, 1},
  {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
  {&__pyx_n_s_key_expr, __pyx_k_key_expr, sizeof(__pyx_k_key_expr), 0, 0, 1, 1},
  {&__pyx_n_s_key_value_pairs, __pyx_k_key_value_pairs, sizeof(__pyx_k_key_value_pairs), 0, 0, 1, 1},
  {&__pyx_n_s_keyword_args, __pyx_k_keyword_args, sizeof(__pyx_k_keyword_args), 0, 0, 1, 1},
  {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1},
  {&__pyx_n_s_kw_only, __pyx_k_kw_only, sizeof(__pyx_k_kw_only), 0, 0, 1, 1},
  {&__pyx_n_s_kwds, __pyx_k_kwds, sizeof(__pyx_k_kwds), 0, 0, 1, 1},
  {&__pyx_n_u_lambda, __pyx_k_lambda, sizeof(__pyx_k_lambda), 0, 1, 0, 1},
  {&__pyx_n_s_language_level, __pyx_k_language_level, sizeof(__pyx_k_language_level), 0, 0, 1, 1},
  {&__pyx_n_u_language_level, __pyx_k_language_level, sizeof(__pyx_k_language_level), 0, 1, 0, 1},
  {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1},
  {&__pyx_n_s_lhs, __pyx_k_lhs, sizeof(__pyx_k_lhs), 0, 0, 1, 1},
  {&__pyx_n_s_lhs_list, __pyx_k_lhs_list, sizeof(__pyx_k_lhs_list), 0, 0, 1, 1},
  {&__pyx_n_s_list_type, __pyx_k_list_type, sizeof(__pyx_k_list_type), 0, 0, 1, 1},
  {&__pyx_n_u_long, __pyx_k_long, sizeof(__pyx_k_long), 0, 1, 0, 1},
  {&__pyx_n_s_longness, __pyx_k_longness, sizeof(__pyx_k_longness), 0, 0, 1, 1},
  {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1},
  {&__pyx_n_s_loop, __pyx_k_loop, sizeof(__pyx_k_loop), 0, 0, 1, 1},
  {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
  {&__pyx_n_s_lstrip, __pyx_k_lstrip, sizeof(__pyx_k_lstrip), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_make_slice_node, __pyx_k_make_slice_node, sizeof(__pyx_k_make_slice_node), 0, 0, 1, 1},
  {&__pyx_n_s_manager, __pyx_k_manager, sizeof(__pyx_k_manager), 0, 0, 1, 1},
  {&__pyx_n_s_match, __pyx_k_match, sizeof(__pyx_k_match), 0, 0, 1, 1},
  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
  {&__pyx_kp_u_missing_in_format_specifier, __pyx_k_missing_in_format_specifier, sizeof(__pyx_k_missing_in_format_specifier), 0, 1, 0, 0},
  {&__pyx_kp_u_missing_in_format_string_express, __pyx_k_missing_in_format_string_express, sizeof(__pyx_k_missing_in_format_string_express), 0, 1, 0, 0},
  {&__pyx_kp_u_missing_in_format_string_express_2, __pyx_k_missing_in_format_string_express_2, sizeof(__pyx_k_missing_in_format_string_express_2), 0, 1, 0, 0},
  {&__pyx_n_s_modifiers, __pyx_k_modifiers, sizeof(__pyx_k_modifiers), 0, 0, 1, 1},
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
  {&__pyx_n_u_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 1, 0, 1},
  {&__pyx_n_s_module_2, __pyx_k_module_2, sizeof(__pyx_k_module_2), 0, 0, 1, 1},
  {&__pyx_n_s_module_name, __pyx_k_module_name, sizeof(__pyx_k_module_name), 0, 0, 1, 1},
  {&__pyx_n_s_module_path, __pyx_k_module_path, sizeof(__pyx_k_module_path), 0, 0, 1, 1},
  {&__pyx_n_u_module_pxd, __pyx_k_module_pxd, sizeof(__pyx_k_module_pxd), 0, 1, 0, 1},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
  {&__pyx_n_s_name_list, __pyx_k_name_list, sizeof(__pyx_k_name_list), 0, 0, 1, 1},
  {&__pyx_n_s_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 0, 1, 1},
  {&__pyx_n_s_namespace, __pyx_k_namespace, sizeof(__pyx_k_namespace), 0, 0, 1, 1},
  {&__pyx_n_u_namespace, __pyx_k_namespace, sizeof(__pyx_k_namespace), 0, 1, 0, 1},
  {&__pyx_n_u_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 1, 0, 1},
  {&__pyx_n_s_node, __pyx_k_node, sizeof(__pyx_k_node), 0, 0, 1, 1},
  {&__pyx_n_s_nogil, __pyx_k_nogil, sizeof(__pyx_k_nogil), 0, 0, 1, 1},
  {&__pyx_n_u_nogil, __pyx_k_nogil, sizeof(__pyx_k_nogil), 0, 1, 0, 1},
  {&__pyx_n_s_nonempty, __pyx_k_nonempty, sizeof(__pyx_k_nonempty), 0, 0, 1, 1},
  {&__pyx_n_s_nonempty_declarators, __pyx_k_nonempty_declarators, sizeof(__pyx_k_nonempty_declarators), 0, 0, 1, 1},
  {&__pyx_n_u_nonlocal, __pyx_k_nonlocal, sizeof(__pyx_k_nonlocal), 0, 1, 0, 1},
  {&__pyx_n_u_not, __pyx_k_not, sizeof(__pyx_k_not), 0, 1, 0, 1},
  {&__pyx_kp_u_not_a_chance, __pyx_k_not_a_chance, sizeof(__pyx_k_not_a_chance), 0, 1, 0, 0},
  {&__pyx_n_u_not_in, __pyx_k_not_in, sizeof(__pyx_k_not_in), 0, 1, 0, 1},
  {&__pyx_n_s_not_none, __pyx_k_not_none, sizeof(__pyx_k_not_none), 0, 0, 1, 1},
  {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
  {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
  {&__pyx_n_u_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 1, 0, 1},
  {&__pyx_n_s_objstruct_name, __pyx_k_objstruct_name, sizeof(__pyx_k_objstruct_name), 0, 0, 1, 1},
  {&__pyx_n_s_open_source_file, __pyx_k_open_source_file, sizeof(__pyx_k_open_source_file), 0, 0, 1, 1},
  {&__pyx_n_s_operand, __pyx_k_operand, sizeof(__pyx_k_operand), 0, 0, 1, 1},
  {&__pyx_n_s_operand1, __pyx_k_operand1, sizeof(__pyx_k_operand1), 0, 0, 1, 1},
  {&__pyx_n_s_operand2, __pyx_k_operand2, sizeof(__pyx_k_operand2), 0, 0, 1, 1},
  {&__pyx_n_s_operator, __pyx_k_operator, sizeof(__pyx_k_operator), 0, 0, 1, 1},
  {&__pyx_n_u_operator, __pyx_k_operator, sizeof(__pyx_k_operator), 0, 1, 0, 1},
  {&__pyx_n_u_or, __pyx_k_or, sizeof(__pyx_k_or), 0, 1, 0, 1},
  {&__pyx_kp_u_or_2, __pyx_k_or_2, sizeof(__pyx_k_or_2), 0, 1, 0, 0},
  {&__pyx_n_s_or_none, __pyx_k_or_none, sizeof(__pyx_k_or_none), 0, 0, 1, 1},
  {&__pyx_n_u_other, __pyx_k_other, sizeof(__pyx_k_other), 0, 1, 0, 1},
  {&__pyx_n_s_overridable, __pyx_k_overridable, sizeof(__pyx_k_overridable), 0, 0, 1, 1},
  {&__pyx_n_s_p_c_arg_list, __pyx_k_p_c_arg_list, sizeof(__pyx_k_p_c_arg_list), 0, 0, 1, 1},
  {&__pyx_n_s_p_c_base_type, __pyx_k_p_c_base_type, sizeof(__pyx_k_p_c_base_type), 0, 0, 1, 1},
  {&__pyx_n_s_p_c_declarator, __pyx_k_p_c_declarator, sizeof(__pyx_k_p_c_declarator), 0, 0, 1, 1},
  {&__pyx_n_s_p_code, __pyx_k_p_code, sizeof(__pyx_k_p_code), 0, 0, 1, 1},
  {&__pyx_n_s_p_module, __pyx_k_p_module, sizeof(__pyx_k_p_module), 0, 0, 1, 1},
  {&__pyx_n_s_packed, __pyx_k_packed, sizeof(__pyx_k_packed), 0, 0, 1, 1},
  {&__pyx_n_u_packed, __pyx_k_packed, sizeof(__pyx_k_packed), 0, 1, 0, 1},
  {&__pyx_n_s_parent_scanner, __pyx_k_parent_scanner, sizeof(__pyx_k_parent_scanner), 0, 0, 1, 1},
  {&__pyx_n_s_parse_comments, __pyx_k_parse_comments, sizeof(__pyx_k_parse_comments), 0, 0, 1, 1},
  {&__pyx_n_s_parse_directive_list, __pyx_k_parse_directive_list, sizeof(__pyx_k_parse_directive_list), 0, 0, 1, 1},
  {&__pyx_n_s_partial, __pyx_k_partial, sizeof(__pyx_k_partial), 0, 0, 1, 1},
  {&__pyx_n_u_pass, __pyx_k_pass, sizeof(__pyx_k_pass), 0, 1, 0, 1},
  {&__pyx_n_s_pattern, __pyx_k_pattern, sizeof(__pyx_k_pattern), 0, 0, 1, 1},
  {&__pyx_n_s_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 0, 1, 1},
  {&__pyx_n_u_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 1, 0, 1},
  {&__pyx_n_s_positional_args, __pyx_k_positional_args, sizeof(__pyx_k_positional_args), 0, 0, 1, 1},
  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
  {&__pyx_n_u_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 1, 0, 1},
  {&__pyx_n_s_print_parse_tree, __pyx_k_print_parse_tree, sizeof(__pyx_k_print_parse_tree), 0, 0, 1, 1},
  {&__pyx_n_u_private, __pyx_k_private, sizeof(__pyx_k_private), 0, 1, 0, 1},
  {&__pyx_n_u_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 1, 0, 1},
  {&__pyx_n_u_ptrdiff_t, __pyx_k_ptrdiff_t, sizeof(__pyx_k_ptrdiff_t), 0, 1, 0, 1},
  {&__pyx_n_u_public, __pyx_k_public, sizeof(__pyx_k_public), 0, 1, 0, 1},
  {&__pyx_n_s_put_back, __pyx_k_put_back, sizeof(__pyx_k_put_back), 0, 0, 1, 1},
  {&__pyx_n_s_pxd, __pyx_k_pxd, sizeof(__pyx_k_pxd), 0, 0, 1, 1},
  {&__pyx_n_u_pxd, __pyx_k_pxd, sizeof(__pyx_k_pxd), 0, 1, 0, 1},
  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
  {&__pyx_n_u_r, __pyx_k_r, sizeof(__pyx_k_r), 0, 1, 0, 1},
  {&__pyx_n_u_raise, __pyx_k_raise, sizeof(__pyx_k_raise), 0, 1, 0, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_re, __pyx_k_re, sizeof(__pyx_k_re), 0, 0, 1, 1},
  {&__pyx_n_u_readonly, __pyx_k_readonly, sizeof(__pyx_k_readonly), 0, 1, 0, 1},
  {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
  {&__pyx_n_s_reject_duplicates, __pyx_k_reject_duplicates, sizeof(__pyx_k_reject_duplicates), 0, 0, 1, 1},
  {&__pyx_n_s_relation1, __pyx_k_relation1, sizeof(__pyx_k_relation1), 0, 0, 1, 1},
  {&__pyx_n_s_relation2, __pyx_k_relation2, sizeof(__pyx_k_relation2), 0, 0, 1, 1},
  {&__pyx_n_s_relative_level, __pyx_k_relative_level, sizeof(__pyx_k_relative_level), 0, 0, 1, 1},
  {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1},
  {&__pyx_n_s_result_expr, __pyx_k_result_expr, sizeof(__pyx_k_result_expr), 0, 0, 1, 1},
  {&__pyx_n_u_return, __pyx_k_return, sizeof(__pyx_k_return), 0, 1, 0, 1},
  {&__pyx_n_s_return_type_annotation, __pyx_k_return_type_annotation, sizeof(__pyx_k_return_type_annotation), 0, 0, 1, 1},
  {&__pyx_n_s_rhs, __pyx_k_rhs, sizeof(__pyx_k_rhs), 0, 0, 1, 1},
  {&__pyx_n_s_rstrip, __pyx_k_rstrip, sizeof(__pyx_k_rstrip), 0, 0, 1, 1},
  {&__pyx_kp_u_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 1, 0, 0},
  {&__pyx_n_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 1},
  {&__pyx_kp_u_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 1, 0, 0},
  {&__pyx_kp_u_s_4, __pyx_k_s_4, sizeof(__pyx_k_s_4), 0, 1, 0, 0},
  {&__pyx_kp_u_s_5, __pyx_k_s_5, sizeof(__pyx_k_s_5), 0, 1, 0, 0},
  {&__pyx_kp_u_s_None_only_allowed_in_Python_f, __pyx_k_s_None_only_allowed_in_Python_f, sizeof(__pyx_k_s_None_only_allowed_in_Python_f), 0, 1, 0, 0},
  {&__pyx_kp_u_s_cython_s_s_w_s, __pyx_k_s_cython_s_s_w_s, sizeof(__pyx_k_s_cython_s_s_w_s), 0, 1, 0, 0},
  {&__pyx_kp_u_s_on_something_that_is_not_a_fu, __pyx_k_s_on_something_that_is_not_a_fu, sizeof(__pyx_k_s_on_something_that_is_not_a_fu), 0, 1, 0, 0},
  {&__pyx_kp_u_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 1, 0, 0},
  {&__pyx_kp_u_s_s_2, __pyx_k_s_s_2, sizeof(__pyx_k_s_s_2), 0, 1, 0, 0},
  {&__pyx_kp_u_s_s_3, __pyx_k_s_s_3, sizeof(__pyx_k_s_s_3), 0, 1, 0, 0},
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
  {&__pyx_n_s_self_flag, __pyx_k_self_flag, sizeof(__pyx_k_self_flag), 0, 0, 1, 1},
  {&__pyx_n_s_sequence, __pyx_k_sequence, sizeof(__pyx_k_sequence), 0, 0, 1, 1},
  {&__pyx_n_u_set, __pyx_k_set, sizeof(__pyx_k_set), 0, 1, 0, 1},
  {&__pyx_n_s_set_language_level, __pyx_k_set_language_level, sizeof(__pyx_k_set_language_level), 0, 0, 1, 1},
  {&__pyx_n_s_set_type, __pyx_k_set_type, sizeof(__pyx_k_set_type), 0, 0, 1, 1},
  {&__pyx_n_u_short, __pyx_k_short, sizeof(__pyx_k_short), 0, 1, 0, 1},
  {&__pyx_n_s_signed, __pyx_k_signed, sizeof(__pyx_k_signed), 0, 0, 1, 1},
  {&__pyx_n_u_signed, __pyx_k_signed, sizeof(__pyx_k_signed), 0, 1, 0, 1},
  {&__pyx_kp_u_single_encountered_in_format_str, __pyx_k_single_encountered_in_format_str, sizeof(__pyx_k_single_encountered_in_format_str), 0, 1, 0, 0},
  {&__pyx_n_u_size_t, __pyx_k_size_t, sizeof(__pyx_k_size_t), 0, 1, 0, 1},
  {&__pyx_n_u_sizeof, __pyx_k_sizeof, sizeof(__pyx_k_sizeof), 0, 1, 0, 1},
  {&__pyx_n_s_source_encoding, __pyx_k_source_encoding, sizeof(__pyx_k_source_encoding), 0, 0, 1, 1},
  {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
  {&__pyx_n_u_ssize_t, __pyx_k_ssize_t, sizeof(__pyx_k_ssize_t), 0, 1, 0, 1},
  {&__pyx_n_s_star_arg, __pyx_k_star_arg, sizeof(__pyx_k_star_arg), 0, 0, 1, 1},
  {&__pyx_n_s_starstar_arg, __pyx_k_starstar_arg, sizeof(__pyx_k_starstar_arg), 0, 0, 1, 1},
  {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
  {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
  {&__pyx_n_s_stats, __pyx_k_stats, sizeof(__pyx_k_stats), 0, 0, 1, 1},
  {&__pyx_n_u_stdcall, __pyx_k_stdcall, sizeof(__pyx_k_stdcall), 0, 1, 0, 1},
  {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1},
  {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1},
  {&__pyx_n_s_stream, __pyx_k_stream, sizeof(__pyx_k_stream), 0, 0, 1, 1},
  {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1},
  {&__pyx_n_u_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 1, 0, 1},
  {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
  {&__pyx_n_s_tag, __pyx_k_tag, sizeof(__pyx_k_tag), 0, 0, 1, 1},
  {&__pyx_n_u_tag, __pyx_k_tag, sizeof(__pyx_k_tag), 0, 1, 0, 1},
  {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1},
  {&__pyx_n_u_template, __pyx_k_template, sizeof(__pyx_k_template), 0, 1, 0, 1},
  {&__pyx_n_s_templates, __pyx_k_templates, sizeof(__pyx_k_templates), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_test_2, __pyx_k_test_2, sizeof(__pyx_k_test_2), 0, 0, 1, 1},
  {&__pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_k_tmp_pip_install_9i_72p5f_cython, sizeof(__pyx_k_tmp_pip_install_9i_72p5f_cython), 0, 0, 1, 0},
  {&__pyx_n_s_true_val, __pyx_k_true_val, sizeof(__pyx_k_true_val), 0, 0, 1, 1},
  {&__pyx_n_s_truedivision, __pyx_k_truedivision, sizeof(__pyx_k_truedivision), 0, 0, 1, 1},
  {&__pyx_n_u_try, __pyx_k_try, sizeof(__pyx_k_try), 0, 1, 0, 1},
  {&__pyx_kp_u_tuple_variant_of_exec_does_not_s, __pyx_k_tuple_variant_of_exec_does_not_s, sizeof(__pyx_k_tuple_variant_of_exec_does_not_s), 0, 1, 0, 0},
  {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
  {&__pyx_n_u_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 1, 0, 1},
  {&__pyx_n_s_typecheck, __pyx_k_typecheck, sizeof(__pyx_k_typecheck), 0, 0, 1, 1},
  {&__pyx_n_s_typedef_flag, __pyx_k_typedef_flag, sizeof(__pyx_k_typedef_flag), 0, 0, 1, 1},
  {&__pyx_n_s_typeobj_name, __pyx_k_typeobj_name, sizeof(__pyx_k_typeobj_name), 0, 0, 1, 1},
  {&__pyx_n_s_types, __pyx_k_types, sizeof(__pyx_k_types), 0, 0, 1, 1},
  {&__pyx_n_u_u, __pyx_k_u, sizeof(__pyx_k_u), 0, 1, 0, 1},
  {&__pyx_n_u_ub, __pyx_k_ub, sizeof(__pyx_k_ub), 0, 1, 0, 1},
  {&__pyx_kp_u_unexpected_sitem_found_in_s_lite, __pyx_k_unexpected_sitem_found_in_s_lite, sizeof(__pyx_k_unexpected_sitem_found_in_s_lite), 0, 1, 0, 0},
  {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1},
  {&__pyx_n_s_unicode_literals, __pyx_k_unicode_literals, sizeof(__pyx_k_unicode_literals), 0, 0, 1, 1},
  {&__pyx_n_s_unicode_value, __pyx_k_unicode_value, sizeof(__pyx_k_unicode_value), 0, 0, 1, 1},
  {&__pyx_n_s_unicodedata, __pyx_k_unicodedata, sizeof(__pyx_k_unicodedata), 0, 0, 1, 1},
  {&__pyx_n_u_union, __pyx_k_union, sizeof(__pyx_k_union), 0, 1, 0, 1},
  {&__pyx_n_s_unop_node, __pyx_k_unop_node, sizeof(__pyx_k_unop_node), 0, 0, 1, 1},
  {&__pyx_n_s_unsigned, __pyx_k_unsigned, sizeof(__pyx_k_unsigned), 0, 0, 1, 1},
  {&__pyx_n_u_unsigned, __pyx_k_unsigned, sizeof(__pyx_k_unsigned), 0, 1, 0, 1},
  {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_n_s_value_expr, __pyx_k_value_expr, sizeof(__pyx_k_value_expr), 0, 0, 1, 1},
  {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
  {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1},
  {&__pyx_n_s_visibility, __pyx_k_visibility, sizeof(__pyx_k_visibility), 0, 0, 1, 1},
  {&__pyx_n_u_void, __pyx_k_void, sizeof(__pyx_k_void), 0, 1, 0, 1},
  {&__pyx_n_s_warning, __pyx_k_warning, sizeof(__pyx_k_warning), 0, 0, 1, 1},
  {&__pyx_n_u_while, __pyx_k_while, sizeof(__pyx_k_while), 0, 1, 0, 1},
  {&__pyx_n_u_with, __pyx_k_with, sizeof(__pyx_k_with), 0, 1, 0, 1},
  {&__pyx_n_s_with_gil, __pyx_k_with_gil, sizeof(__pyx_k_with_gil), 0, 0, 1, 1},
  {&__pyx_kp_u_with_gil_nogil_cannot_be_async, __pyx_k_with_gil_nogil_cannot_be_async, sizeof(__pyx_k_with_gil_nogil_cannot_be_async), 0, 1, 0, 0},
  {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1},
  {&__pyx_n_u_yield, __pyx_k_yield, sizeof(__pyx_k_yield), 0, 1, 0, 1},
  {&__pyx_kp_u_yield_from_requires_a_source_ar, __pyx_k_yield_from_requires_a_source_ar, sizeof(__pyx_k_yield_from_requires_a_source_ar), 0, 1, 0, 0},
  {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 39, __pyx_L1_error)
  __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(0, 765, __pyx_L1_error)
  __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 950, __pyx_L1_error)
  __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 1679, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 3525, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 3662, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "Cython/Compiler/Parsing.py":160
 * 
 * def p_or_test(s):
 *     return p_rassoc_binop_expr(s, ('or',), p_and_test)             # <<<<<<<<<<<<<<
 * 
 * def p_rassoc_binop_expr(s, ops, p_subexpr):
 */
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_n_u_or); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "Cython/Compiler/Parsing.py":176
 * def p_and_test(s):
 *     #return p_binop_expr(s, ('and',), p_not_test)
 *     return p_rassoc_binop_expr(s, ('and',), p_not_test)             # <<<<<<<<<<<<<<
 * 
 * #not_test: 'not' not_test | comparison
 */
  __pyx_tuple__5 = PyTuple_Pack(1, __pyx_n_u_and); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "Cython/Compiler/Parsing.py":258
 * 
 * def p_bit_expr(s):
 *     return p_binop_expr(s, ('|',), p_xor_expr)             # <<<<<<<<<<<<<<
 * 
 * #xor_expr: and_expr ('^' and_expr)*
 */
  __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u__9); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "Cython/Compiler/Parsing.py":263
 * 
 * def p_xor_expr(s):
 *     return p_binop_expr(s, ('^',), p_and_expr)             # <<<<<<<<<<<<<<
 * 
 * #and_expr: shift_expr ('&' shift_expr)*
 */
  __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u__11); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  /* "Cython/Compiler/Parsing.py":268
 * 
 * def p_and_expr(s):
 *     return p_binop_expr(s, ('&',), p_shift_expr)             # <<<<<<<<<<<<<<
 * 
 * #shift_expr: arith_expr (('<<'|'>>') arith_expr)*
 */
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u__13); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "Cython/Compiler/Parsing.py":273
 * 
 * def p_shift_expr(s):
 *     return p_binop_expr(s, ('<<', '>>'), p_arith_expr)             # <<<<<<<<<<<<<<
 * 
 * #arith_expr: term (('+'|'-') term)*
 */
  __pyx_tuple__17 = PyTuple_Pack(2, __pyx_kp_u__15, __pyx_kp_u__16); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "Cython/Compiler/Parsing.py":278
 * 
 * def p_arith_expr(s):
 *     return p_binop_expr(s, ('+', '-'), p_term)             # <<<<<<<<<<<<<<
 * 
 * #term: factor (('*'|'@'|'/'|'%'|'//') factor)*
 */
  __pyx_tuple__20 = PyTuple_Pack(2, __pyx_kp_u__18, __pyx_kp_u__19); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "Cython/Compiler/Parsing.py":283
 * 
 * def p_term(s):
 *     return p_binop_expr(s, ('*', '@', '/', '%', '//'), p_factor)             # <<<<<<<<<<<<<<
 * 
 * #factor: ('+'|'-'|'~'|'&'|typecast|sizeof) factor | power
 */
  __pyx_tuple__24 = PyTuple_Pack(5, __pyx_kp_u__6, __pyx_kp_u__21, __pyx_kp_u__2, __pyx_kp_u__22, __pyx_kp_u__23); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "Cython/Compiler/Parsing.py":320
 *     if (not is_memslice and not is_template and not is_const
 *         and base_type.name is None):
 *         s.error("Unknown type")             # <<<<<<<<<<<<<<
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':
 */
  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_u_Unknown_type); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "Cython/Compiler/Parsing.py":372
 *     else:
 *         if is_yield_from:
 *             s.error("'yield from' requires a source argument",             # <<<<<<<<<<<<<<
 *                     pos=pos, fatal=False)
 *         arg = None
 */
  __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_u_yield_from_requires_a_source_ar); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  /* "Cython/Compiler/Parsing.py":392
 *         # 'async def' statements aren't allowed in pxd files
 *         if 'pxd' in ctx.level:
 *             s.error('def statement not allowed here')             # <<<<<<<<<<<<<<
 *         s.level = ctx.level
 *         return p_def_statement(s, decorators, is_async_def=True)
 */
  __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_def_statement_not_allowed_here); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  /* "Cython/Compiler/Parsing.py":396
 *         return p_def_statement(s, decorators, is_async_def=True)
 *     elif decorators:
 *         s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *     elif s.sy == 'for':
 *         return p_for_statement(s, is_async=True)
 */
  __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  /* "Cython/Compiler/Parsing.py":403
 *         return p_with_items(s, is_async=True)
 *     else:
 *         s.error("expected one of 'def', 'for', 'with' after 'async'")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_expected_one_of_def_for_with_aft); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "Cython/Compiler/Parsing.py":471
 *         if s.sy == '*':
 *             if starstar_seen:
 *                 s.error("Non-keyword arg following keyword arg", pos=s.position())             # <<<<<<<<<<<<<<
 *             s.next()
 *             positional_args.append(p_test(s))
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_u_Non_keyword_arg_following_keywor); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "Cython/Compiler/Parsing.py":484
 *                 s.next()
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 encoded_name = s.context.intern_ustring(arg.name)
 */
  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_u_Expected_an_identifier_before); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);

  /* "Cython/Compiler/Parsing.py":493
 *             else:
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg", pos=arg.pos)             # <<<<<<<<<<<<<<
 *                 if positional_args and not last_was_tuple_unpack:
 *                     positional_args[-1].append(arg)
 */
  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_u_Non_keyword_arg_following_keywor); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);

  /* "Cython/Compiler/Parsing.py":608
 *     # many slice elements were encountered.
 *     pos = s.position()
 *     start = p_slice_element(s, (':',))             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         return [start]
 */
  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_u__3); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);

  /* "Cython/Compiler/Parsing.py":612
 *         return [start]
 *     s.next()
 *     stop = p_slice_element(s, (':', ',', ']'))             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         return [start, stop]
 */
  __pyx_tuple__45 = PyTuple_Pack(3, __pyx_kp_u__3, __pyx_kp_u_, __pyx_kp_u__43); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);

  /* "Cython/Compiler/Parsing.py":616
 *         return [start, stop]
 *     s.next()
 *     step = p_slice_element(s, (':', ',', ']'))             # <<<<<<<<<<<<<<
 *     return [start, stop, step]
 * 
 */
  __pyx_tuple__46 = PyTuple_Pack(3, __pyx_kp_u__3, __pyx_kp_u_, __pyx_kp_u__43); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);

  /* "Cython/Compiler/Parsing.py":686
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)
 */
  __pyx_slice__49 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__49)) __PYX_ERR(0, 686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__49);
  __Pyx_GIVEREF(__pyx_slice__49);

  /* "Cython/Compiler/Parsing.py":717
 *             return p_name(s, name)
 *     else:
 *         s.error("Expected an identifier or literal")             # <<<<<<<<<<<<<<
 * 
 * def p_int_literal(s):
 */
  __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_u_Expected_an_identifier_or_litera); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);

  /* "Cython/Compiler/Parsing.py":787
 *             return None
 *     elif not _IS_PY3 and isinstance(value, long):
 *         return ExprNodes.IntNode(pos, value=rep.rstrip('L'), constant_result=value)             # <<<<<<<<<<<<<<
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 *                % (value, value.__class__.__name__))
 */
  __pyx_tuple__52 = PyTuple_Pack(1, __pyx_n_u_L); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);

  /* "Cython/Compiler/Parsing.py":849
 *         return bytes_value
 *     else:
 *         s.error("internal parser configuration error")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__53 = PyTuple_Pack(1, __pyx_kp_u_internal_parser_configuration_er); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);

  /* "Cython/Compiler/Parsing.py":873
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ascii_literal_characters = False
 *     kind_string = s.systring.rstrip('"\'').lower()             # <<<<<<<<<<<<<<
 *     if len(set(kind_string)) != len(kind_string):
 *         s.error('Duplicate string prefix character')
 */
  __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_u__54); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);

  /* "Cython/Compiler/Parsing.py":875
 *     kind_string = s.systring.rstrip('"\'').lower()
 *     if len(set(kind_string)) != len(kind_string):
 *         s.error('Duplicate string prefix character')             # <<<<<<<<<<<<<<
 *     if 'b' in kind_string and 'u' in kind_string:
 *         s.error('String prefixes b and u cannot be combined')
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_u_Duplicate_string_prefix_characte); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "Cython/Compiler/Parsing.py":877
 *         s.error('Duplicate string prefix character')
 *     if 'b' in kind_string and 'u' in kind_string:
 *         s.error('String prefixes b and u cannot be combined')             # <<<<<<<<<<<<<<
 *     if 'b' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes b and f cannot be combined')
 */
  __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_u_String_prefixes_b_and_u_cannot_b); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);

  /* "Cython/Compiler/Parsing.py":879
 *         s.error('String prefixes b and u cannot be combined')
 *     if 'b' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes b and f cannot be combined')             # <<<<<<<<<<<<<<
 *     if 'u' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes u and f cannot be combined')
 */
  __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_u_String_prefixes_b_and_f_cannot_b); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);

  /* "Cython/Compiler/Parsing.py":881
 *         s.error('String prefixes b and f cannot be combined')
 *     if 'u' in kind_string and 'f' in kind_string:
 *         s.error('String prefixes u and f cannot be combined')             # <<<<<<<<<<<<<<
 * 
 *     is_raw = 'r' in kind_string
 */
  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_u_String_prefixes_u_and_f_cannot_b); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "Cython/Compiler/Parsing.py":889
 *         # with other prefix characters
 *         if len(kind_string) != 1:
 *             s.error('Invalid string prefix for character literal')             # <<<<<<<<<<<<<<
 *         kind = 'c'
 *     elif 'f' in kind_string:
 */
  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_u_Invalid_string_prefix_for_charac); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__60);
  __Pyx_GIVEREF(__pyx_tuple__60);

  /* "Cython/Compiler/Parsing.py":952
 *                         except KeyError:
 *                             s.error("Unknown Unicode character name %s" %
 *                                     repr(systr[3:-1]).lstrip('u'))             # <<<<<<<<<<<<<<
 *                     elif len(systr) in (6,10):
 *                         chrval = int(systr[2:], 16)
 */
  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_n_u_u); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);

  /* "Cython/Compiler/Parsing.py":973
 *             break
 *         elif sy == 'EOF':
 *             s.error("Unclosed string literal", pos=pos)             # <<<<<<<<<<<<<<
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_u_Unclosed_string_literal); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "Cython/Compiler/Parsing.py":988
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind not in ('u', 'f'):
 *                 s.error("bytes can only contain ASCII literal characters.",             # <<<<<<<<<<<<<<
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 */
  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_u_bytes_can_only_contain_ASCII_lit); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);

  /* "Cython/Compiler/Parsing.py":1013
 *                 current_literal_start = i
 *             elif c == '}':
 *                 s.error("single '}' encountered in format string")             # <<<<<<<<<<<<<<
 *             else:
 *                 encoded_str = EncodedString(unicode_value[current_literal_start:i])
 */
  __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_u_single_encountered_in_format_str); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);

  /* "Cython/Compiler/Parsing.py":1043
 *     while True:
 *         if i >= size:
 *             s.error("missing '}' in format string expression")             # <<<<<<<<<<<<<<
 *         c = unicode_value[i]
 * 
 */
  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_u_missing_in_format_string_express); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 1043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);

  /* "Cython/Compiler/Parsing.py":1067
 *             nested_depth -= 1
 *         elif c == '#':
 *             s.error("format string cannot include #")             # <<<<<<<<<<<<<<
 *         elif nested_depth == 0 and c in '!:}':
 *             # allow != as a special case
 */
  __pyx_tuple__70 = PyTuple_Pack(1, __pyx_kp_u_format_string_cannot_include); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 1067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);

  /* "Cython/Compiler/Parsing.py":1079
 * 
 *     # normalise line endings as the parser expects that
 *     expr_str = unicode_value[starting_index:i].replace('\r\n', '\n').replace('\r', '\n')             # <<<<<<<<<<<<<<
 *     expr_pos = (pos[0], pos[1], pos[2] + starting_index + 2)  # TODO: find exact code position (concat, multi-line, ...)
 * 
 */
  __pyx_tuple__72 = PyTuple_Pack(2, __pyx_kp_u__71, __pyx_kp_u__63); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);
  __pyx_tuple__74 = PyTuple_Pack(2, __pyx_kp_u__73, __pyx_kp_u__63); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);

  /* "Cython/Compiler/Parsing.py":1083
 * 
 *     if not expr_str.strip():
 *         s.error("empty expression not allowed in f-string")             # <<<<<<<<<<<<<<
 * 
 *     if terminal_char == '!':
 */
  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_u_empty_expression_not_allowed_in); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__75);
  __Pyx_GIVEREF(__pyx_tuple__75);

  /* "Cython/Compiler/Parsing.py":1088
 *         i += 1
 *         if i + 2 > size:
 *             s.error("invalid conversion char at end of string")             # <<<<<<<<<<<<<<
 *         conversion_char = unicode_value[i]
 *         i += 1
 */
  __pyx_tuple__77 = PyTuple_Pack(1, __pyx_kp_u_invalid_conversion_char_at_end_o); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 1088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);

  /* "Cython/Compiler/Parsing.py":1100
 *         while True:
 *             if i >= size:
 *                 s.error("missing '}' in format specifier")             # <<<<<<<<<<<<<<
 *             c = unicode_value[i]
 *             if not in_triple_quotes and not in_string:
 */
  __pyx_tuple__78 = PyTuple_Pack(1, __pyx_kp_u_missing_in_format_specifier); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(0, 1100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__78);
  __Pyx_GIVEREF(__pyx_tuple__78);

  /* "Cython/Compiler/Parsing.py":1159
 *     if s.sy == 'for':
 *         if expr.is_starred:
 *             s.error("iterable unpacking cannot be used in comprehension")             # <<<<<<<<<<<<<<
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 *         loop = p_comp_for(s, append)
 */
  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_u_iterable_unpacking_cannot_be_use); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 1159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);

  /* "Cython/Compiler/Parsing.py":1233
 *             s.next()
 *             if s.sy == '*':
 *                 s.error("expected expression, found '*'")             # <<<<<<<<<<<<<<
 *             item = p_starred_expr(s)
 *             parts.append(item)
 */
  __pyx_tuple__80 = PyTuple_Pack(1, __pyx_kp_u_expected_expression_found); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__80);
  __Pyx_GIVEREF(__pyx_tuple__80);

  /* "Cython/Compiler/Parsing.py":1278
 *             # syntax error, try to find a good error message
 *             if len(parts) == 1 and not isinstance(parts[0], list):
 *                 s.error("iterable unpacking cannot be used in comprehension")             # <<<<<<<<<<<<<<
 *             else:
 *                 # e.g. "{1,2,3 for ..."
 */
  __pyx_tuple__81 = PyTuple_Pack(1, __pyx_kp_u_iterable_unpacking_cannot_be_use); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 1278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);

  /* "Cython/Compiler/Parsing.py":1431
 *         # This is a common enough error to make when learning Cython to let
 *         # it fail as early as possible and give a very clear error message.
 *         s.error("a starred assignment target must be in a list or tuple"             # <<<<<<<<<<<<<<
 *                 " - maybe you meant to use an index assignment: var[0] = ...",
 *                 pos=expr_list[0].pos)
 */
  __pyx_tuple__82 = PyTuple_Pack(1, __pyx_kp_u_a_starred_assignment_target_must); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__82);
  __Pyx_GIVEREF(__pyx_tuple__82);

  /* "Cython/Compiler/Parsing.py":1452
 *             elif not isinstance(lhs, (ExprNodes.AttributeNode, ExprNodes.IndexNode, ExprNodes.NameNode)):
 *                 error(lhs.pos, "Illegal operand for inplace operation.")
 *             operator = s.sy[:-1]             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == 'yield':
 */
  __pyx_slice__84 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__84)) __PYX_ERR(0, 1452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__84);
  __Pyx_GIVEREF(__pyx_slice__84);

  /* "Cython/Compiler/Parsing.py":1515
 *     if s.sy == 'in':
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",             # <<<<<<<<<<<<<<
 *                     fatal=False)
 *         s.next()
 */
  __pyx_tuple__85 = PyTuple_Pack(1, __pyx_kp_u_tuple_variant_of_exec_does_not_s); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 1515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);

  /* "Cython/Compiler/Parsing.py":1611
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args=[
 *                     ExprNodes.IdentifierStringNode(pos, value=s.context.intern_ustring("*"))])             # <<<<<<<<<<<<<<
 *             else:
 *                 name_list = None
 */
  __pyx_tuple__86 = PyTuple_Pack(1, __pyx_kp_u__6); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(0, 1611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__86);
  __Pyx_GIVEREF(__pyx_tuple__86);

  /* "Cython/Compiler/Parsing.py":1640
 *     if level is not None and s.sy in ('import', 'cimport'):
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), s.context.intern_ustring('')             # <<<<<<<<<<<<<<
 *     else:
 *         if level is None and Future.absolute_import in s.context.future_directives:
 */
  __pyx_tuple__87 = PyTuple_Pack(1, __pyx_kp_u__50); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 1640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);

  /* "Cython/Compiler/Parsing.py":1646
 *         (dotted_name_pos, _, dotted_name, _) = p_dotted_name(s, as_allowed=False)
 *     if s.sy not in ('import', 'cimport'):
 *         s.error("Expected 'import' or 'cimport'")             # <<<<<<<<<<<<<<
 *     kind = s.sy
 *     s.next()
 */
  __pyx_tuple__88 = PyTuple_Pack(1, __pyx_kp_u_Expected_import_or_cimport); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(0, 1646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__88);
  __Pyx_GIVEREF(__pyx_tuple__88);

  /* "Cython/Compiler/Parsing.py":1653
 *     is_parenthesized = False
 *     if s.sy == '*':
 *         imported_names = [(s.position(), s.context.intern_ustring("*"), None, None)]             # <<<<<<<<<<<<<<
 *         s.next()
 *     else:
 */
  __pyx_tuple__89 = PyTuple_Pack(1, __pyx_kp_u__6); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 1653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);

  /* "Cython/Compiler/Parsing.py":1669
 *     if dotted_name == '__future__':
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")             # <<<<<<<<<<<<<<
 *         elif level:
 *             s.error("invalid syntax")
 */
  __pyx_tuple__90 = PyTuple_Pack(1, __pyx_kp_u_from___future___imports_must_occ); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__90);
  __Pyx_GIVEREF(__pyx_tuple__90);

  /* "Cython/Compiler/Parsing.py":1671
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level:
 *             s.error("invalid syntax")             # <<<<<<<<<<<<<<
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 */
  __pyx_tuple__91 = PyTuple_Pack(1, __pyx_kp_u_invalid_syntax); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 1671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);

  /* "Cython/Compiler/Parsing.py":1854
 *         return op
 *     else:
 *         s.error("Expected one of '<', '<=', '>' '>='")             # <<<<<<<<<<<<<<
 * 
 * def p_for_from_step(s):
 */
  __pyx_tuple__92 = PyTuple_Pack(1, __pyx_kp_u_Expected_one_of); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(0, 1854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__92);
  __Pyx_GIVEREF(__pyx_tuple__92);

  /* "Cython/Compiler/Parsing.py":1920
 *             body = body, finally_clause = finally_clause)
 *     else:
 *         s.error("Expected 'except' or 'finally'")             # <<<<<<<<<<<<<<
 * 
 * def p_except_clause(s):
 */
  __pyx_tuple__93 = PyTuple_Pack(1, __pyx_kp_u_Expected_except_or_finally); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);

  /* "Cython/Compiler/Parsing.py":1962
 *         if include_file_path:
 *             s.included_files.append(include_file_name)
 *             with Utils.open_source_file(include_file_path) as f:             # <<<<<<<<<<<<<<
 *                 source_desc = FileSourceDescriptor(include_file_path)
 *                 s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 */
  __pyx_tuple__94 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(0, 1962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__94);
  __Pyx_GIVEREF(__pyx_tuple__94);

  /* "Cython/Compiler/Parsing.py":1986
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         if is_async:
 *             s.error("with gil/nogil cannot be async")             # <<<<<<<<<<<<<<
 *         state = s.systring
 *         s.next()
 */
  __pyx_tuple__95 = PyTuple_Pack(1, __pyx_kp_u_with_gil_nogil_cannot_be_async); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 1986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);

  /* "Cython/Compiler/Parsing.py":2147
 *     if s.sy == 'ctypedef':
 *         if ctx.level not in ('module', 'module_pxd'):
 *             s.error("ctypedef statement not allowed here")             # <<<<<<<<<<<<<<
 *         #if ctx.api:
 *         #    error(s.position(), "'api' not allowed with 'ctypedef'")
 */
  __pyx_tuple__97 = PyTuple_Pack(1, __pyx_kp_u_ctypedef_statement_not_allowed_h); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 2147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__97);
  __Pyx_GIVEREF(__pyx_tuple__97);

  /* "Cython/Compiler/Parsing.py":2157
 *     elif s.sy == '@':
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 *             s.error('decorator not allowed here')             # <<<<<<<<<<<<<<
 *         s.level = ctx.level
 *         decorators = p_decorators(s)
 */
  __pyx_tuple__98 = PyTuple_Pack(1, __pyx_kp_u_decorator_not_allowed_here); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 2157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);

  /* "Cython/Compiler/Parsing.py":2164
 *                 pass  # handled below
 *             else:
 *                 s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *     elif s.sy == 'pass' and cdef_flag:
 *         # empty cdef block
 */
  __pyx_tuple__99 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(0, 2164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__99);
  __Pyx_GIVEREF(__pyx_tuple__99);

  /* "Cython/Compiler/Parsing.py":2179
 *     if cdef_flag:
 *         if ctx.level not in ('module', 'module_pxd', 'function', 'c_class', 'c_class_pxd'):
 *             s.error('cdef statement not allowed here')             # <<<<<<<<<<<<<<
 *         s.level = ctx.level
 *         node = p_cdef_statement(s, ctx(overridable=overridable))
 */
  __pyx_tuple__100 = PyTuple_Pack(1, __pyx_kp_u_cdef_statement_not_allowed_here); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(0, 2179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__100);
  __Pyx_GIVEREF(__pyx_tuple__100);

  /* "Cython/Compiler/Parsing.py":2187
 *                 tup += (Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode)
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *             node.decorators = decorators
 *         return node
 */
  __pyx_tuple__101 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 2187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);

  /* "Cython/Compiler/Parsing.py":2192
 *     else:
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)             # <<<<<<<<<<<<<<
 *         elif s.sy == 'def':
 *             # def statements aren't allowed in pxd files, except
 */
  __pyx_tuple__102 = PyTuple_Pack(1, __pyx_kp_u_api_not_allowed_with_this_state); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(0, 2192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__102);
  __Pyx_GIVEREF(__pyx_tuple__102);

  /* "Cython/Compiler/Parsing.py":2197
 *             # as part of a cdef class
 *             if ('pxd' in ctx.level) and (ctx.level != 'c_class_pxd'):
 *                 s.error('def statement not allowed here')             # <<<<<<<<<<<<<<
 *             s.level = ctx.level
 *             return p_def_statement(s, decorators)
 */
  __pyx_tuple__103 = PyTuple_Pack(1, __pyx_kp_u_def_statement_not_allowed_here); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__103);
  __Pyx_GIVEREF(__pyx_tuple__103);

  /* "Cython/Compiler/Parsing.py":2202
 *         elif s.sy == 'class':
 *             if ctx.level not in ('module', 'function', 'class', 'other'):
 *                 s.error("class definition not allowed here")             # <<<<<<<<<<<<<<
 *             return p_class_statement(s, decorators)
 *         elif s.sy == 'include':
 */
  __pyx_tuple__104 = PyTuple_Pack(1, __pyx_kp_u_class_definition_not_allowed_her); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(0, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__104);
  __Pyx_GIVEREF(__pyx_tuple__104);

  /* "Cython/Compiler/Parsing.py":2206
 *         elif s.sy == 'include':
 *             if ctx.level not in ('module', 'module_pxd'):
 *                 s.error("include statement not allowed here")             # <<<<<<<<<<<<<<
 *             return p_include_statement(s, ctx)
 *         elif ctx.level == 'c_class' and s.sy == 'IDENT' and s.systring == 'property':
 */
  __pyx_tuple__105 = PyTuple_Pack(1, __pyx_kp_u_include_statement_not_allowed_he); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 2206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__105);
  __Pyx_GIVEREF(__pyx_tuple__105);

  /* "Cython/Compiler/Parsing.py":2217
 *                 if node is not None:
 *                     return node
 *                 s.error("Executable statement not allowed here")             # <<<<<<<<<<<<<<
 *             if s.sy == 'if':
 *                 return p_if_statement(s)
 */
  __pyx_tuple__106 = PyTuple_Pack(1, __pyx_kp_u_Executable_statement_not_allowed); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(0, 2217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);

  /* "Cython/Compiler/Parsing.py":2239
 *                         return p_async_statement(s, ctx, decorators)
 *                     elif decorators:
 *                         s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *                     s.put_back('IDENT', ident_name)  # re-insert original token
 *                 return p_simple_statement_list(s, ctx, first_statement=first_statement)
 */
  __pyx_tuple__107 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 2239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__107);
  __Pyx_GIVEREF(__pyx_tuple__107);

  /* "Cython/Compiler/Parsing.py":2278
 *     else:
 *         if ctx.api:
 *             s.error("'api' not allowed with this statement", fatal=False)             # <<<<<<<<<<<<<<
 *         if ctx.level in ('module', 'class', 'function', 'other'):
 *             body = p_simple_statement_list(s, ctx)
 */
  __pyx_tuple__109 = PyTuple_Pack(1, __pyx_kp_u_api_not_allowed_with_this_state); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 2278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__109);
  __Pyx_GIVEREF(__pyx_tuple__109);

  /* "Cython/Compiler/Parsing.py":2303
 *     while s.sy not in end_sy_set:
 *         if s.sy == '*' or s.sy == '**':
 *             s.error('Argument expansion not allowed here.', fatal=False)             # <<<<<<<<<<<<<<
 * 
 *         parsed_type = False
 */
  __pyx_tuple__110 = PyTuple_Pack(1, __pyx_kp_u_Argument_expansion_not_allowed_h); if (unlikely(!__pyx_tuple__110)) __PYX_ERR(0, 2303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__110);
  __Pyx_GIVEREF(__pyx_tuple__110);

  /* "Cython/Compiler/Parsing.py":2334
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                         pos=arg.pos)
 * 
 */
  __pyx_tuple__111 = PyTuple_Pack(1, __pyx_kp_u_Non_keyword_arg_following_keywor); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(0, 2334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__111);
  __Pyx_GIVEREF(__pyx_tuple__111);

  /* "Cython/Compiler/Parsing.py":2444
 *                 if (s.sy == '*' or s.sy == '**' or s.sy == '&'
 *                         or (s.sy == 'IDENT' and s.systring in calling_convention_words)):
 *                     s.put_back('(', '(')             # <<<<<<<<<<<<<<
 *                 else:
 *                     s.put_back('(', '(')
 */
  __pyx_tuple__112 = PyTuple_Pack(2, __pyx_kp_u__30, __pyx_kp_u__30); if (unlikely(!__pyx_tuple__112)) __PYX_ERR(0, 2444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__112);
  __Pyx_GIVEREF(__pyx_tuple__112);

  /* "Cython/Compiler/Parsing.py":2446
 *                     s.put_back('(', '(')
 *                 else:
 *                     s.put_back('(', '(')             # <<<<<<<<<<<<<<
 *                     s.put_back('IDENT', name)
 *                     name = None
 */
  __pyx_tuple__113 = PyTuple_Pack(2, __pyx_kp_u__30, __pyx_kp_u__30); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 2446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);

  /* "Cython/Compiler/Parsing.py":2480
 *     # For templated types, all parameters are types.
 *     positional_args, keyword_args = (
 *         p_positional_and_keyword_args(s, (']',), templates)             # <<<<<<<<<<<<<<
 *     )
 *     s.expect(']')
 */
  __pyx_tuple__114 = PyTuple_Pack(1, __pyx_kp_u__43); if (unlikely(!__pyx_tuple__114)) __PYX_ERR(0, 2480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__114);
  __Pyx_GIVEREF(__pyx_tuple__114);

  /* "Cython/Compiler/Parsing.py":2535
 *             retval = True
 * 
 *     for sv in saved[::-1]:             # <<<<<<<<<<<<<<
 *         s.put_back(*sv)
 * 
 */
  __pyx_slice__115 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_slice__115)) __PYX_ERR(0, 2535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__115);
  __Pyx_GIVEREF(__pyx_slice__115);

  /* "Cython/Compiler/Parsing.py":2548
 *     for subscript in subscripts:
 *         if len(subscript) < 2:
 *             s.error("An axis specification in memoryview declaration does not have a ':'.")             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     indexes = make_slice_nodes(pos, subscripts)
 */
  __pyx_tuple__116 = PyTuple_Pack(1, __pyx_kp_u_An_axis_specification_in_memoryv); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(0, 2548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);

  /* "Cython/Compiler/Parsing.py":2592
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')             # <<<<<<<<<<<<<<
 * 
 *         s.put_back('IDENT', name)
 */
  __pyx_tuple__117 = PyTuple_Pack(2, __pyx_kp_u__37, __pyx_kp_u__37); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 2592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__117);
  __Pyx_GIVEREF(__pyx_tuple__117);

  /* "Cython/Compiler/Parsing.py":2685
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name=s.context.intern_ustring(u""), cname=None)             # <<<<<<<<<<<<<<
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 *         else:
 */
  __pyx_tuple__119 = PyTuple_Pack(1, __pyx_kp_u__50); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 2685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__119);
  __Pyx_GIVEREF(__pyx_tuple__119);

  /* "Cython/Compiler/Parsing.py":2911
 *             s.next()
 *         else:
 *             s.error("Expected 'None'")             # <<<<<<<<<<<<<<
 *         if not in_pyfunc:
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 */
  __pyx_tuple__126 = PyTuple_Pack(1, __pyx_kp_u_Expected_None); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(0, 2911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__126);
  __Pyx_GIVEREF(__pyx_tuple__126);

  /* "Cython/Compiler/Parsing.py":2924
 *             if s.sy not in ['*', '?']:
 *                 error(pos, "default values cannot be specified in pxd files, use ? or *")
 *             default = ExprNodes.BoolNode(1)             # <<<<<<<<<<<<<<
 *             s.next()
 *         else:
 */
  __pyx_tuple__127 = PyTuple_Pack(1, __pyx_int_1); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(0, 2924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__127);
  __Pyx_GIVEREF(__pyx_tuple__127);

  /* "Cython/Compiler/Parsing.py":3171
 *     if s.sy == ':':
 *         if ctx.level not in ('module', 'c_class', 'module_pxd', 'c_class_pxd', 'cpp_class') and not ctx.templates:
 *             s.error("C function definition not allowed here")             # <<<<<<<<<<<<<<
 *         doc, suite = p_suite_with_docstring(s, Ctx(level='function'))
 *         result = Nodes.CFuncDefNode(pos,
 */
  __pyx_tuple__128 = PyTuple_Pack(1, __pyx_kp_u_C_function_definition_not_allowe); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(0, 3171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__128);
  __Pyx_GIVEREF(__pyx_tuple__128);

  /* "Cython/Compiler/Parsing.py":3244
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')             # <<<<<<<<<<<<<<
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:
 */
  __pyx_tuple__129 = PyTuple_Pack(1, __pyx_kp_u__37); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 3244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__129);
  __Pyx_GIVEREF(__pyx_tuple__129);

  /* "Cython/Compiler/Parsing.py":3246
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=s.context.intern_ustring(names[0]))
 *         for name in names[1:]:             # <<<<<<<<<<<<<<
 *             decorator = ExprNodes.AttributeNode(
 *                 pos, attribute=s.context.intern_ustring(name), obj=decorator)
 */
  __pyx_slice__130 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__130)) __PYX_ERR(0, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__130);
  __Pyx_GIVEREF(__pyx_slice__130);

  /* "Cython/Compiler/Parsing.py":3298
 *                 nonempty_declarators = 1, kw_only = 1, annotated = annotated))
 *         elif s.sy != terminator:
 *             s.error("Syntax error in Python function argument list")             # <<<<<<<<<<<<<<
 *     if s.sy == '**':
 *         s.next()
 */
  __pyx_tuple__132 = PyTuple_Pack(1, __pyx_kp_u_Syntax_error_in_Python_function); if (unlikely(!__pyx_tuple__132)) __PYX_ERR(0, 3298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__132);
  __Pyx_GIVEREF(__pyx_tuple__132);

  /* "Cython/Compiler/Parsing.py":3366
 *             base_class_path.append(p_ident(s))
 *         if s.sy == ',':
 *             s.error("C class may only have one base class", fatal=False)             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *         base_class_module = ".".join(base_class_path[:-1])
 */
  __pyx_tuple__133 = PyTuple_Pack(1, __pyx_kp_u_C_class_may_only_have_one_base_c); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 3366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__133);
  __Pyx_GIVEREF(__pyx_tuple__133);

  /* "Cython/Compiler/Parsing.py":3521
 *         m = _match_compiler_directive_comment(s.systring)
 *         if m:
 *             directives = m.group(1).strip()             # <<<<<<<<<<<<<<
 *             try:
 *                 result.update(Options.parse_directive_list(
 */
  __pyx_tuple__135 = PyTuple_Pack(1, __pyx_int_1); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(0, 3521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__135);
  __Pyx_GIVEREF(__pyx_tuple__135);

  /* "Cython/Compiler/Parsing.py":3642
 *                 tup += Nodes.CStructOrUnionDefNode, Nodes.CEnumDefNode
 *             if not isinstance(node, tup):
 *                 s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *             node.decorators = decorators
 *         return node
 */
  __pyx_tuple__137 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__137);
  __Pyx_GIVEREF(__pyx_tuple__137);

  /* "Cython/Compiler/Parsing.py":3677
 *             return
 *         elif t is list:
 *             f.write("[\n")             # <<<<<<<<<<<<<<
 *             for i in range(len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 */
  __pyx_tuple__140 = PyTuple_Pack(1, __pyx_kp_u__139); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(0, 3677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__140);
  __Pyx_GIVEREF(__pyx_tuple__140);

  /* "Cython/Compiler/Parsing.py":52
 *     allow_struct_enum_decorator = False
 * 
 *     def __init__(self, **kwds):             # <<<<<<<<<<<<<<
 *         self.__dict__.update(kwds)
 * 
 */
  __pyx_tuple__141 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_kwds); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__141);
  __Pyx_GIVEREF(__pyx_tuple__141);
  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_init, 52, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(0, 52, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":55
 *         self.__dict__.update(kwds)
 * 
 *     def __call__(self, **kwds):             # <<<<<<<<<<<<<<
 *         ctx = Ctx()
 *         d = ctx.__dict__
 */
  __pyx_tuple__143 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_kwds, __pyx_n_s_ctx, __pyx_n_s_d); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__143);
  __Pyx_GIVEREF(__pyx_tuple__143);
  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_call, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 55, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":645
 *     return result
 * 
 * def make_slice_node(pos, start, stop = None, step = None):             # <<<<<<<<<<<<<<
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)
 */
  __pyx_tuple__148 = PyTuple_Pack(4, __pyx_n_s_pos, __pyx_n_s_start, __pyx_n_s_stop, __pyx_n_s_step); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(0, 645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__148);
  __Pyx_GIVEREF(__pyx_tuple__148);
  __pyx_codeobj__149 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__148, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_make_slice_node, 645, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__149)) __PYX_ERR(0, 645, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2345
 *     return positional_args, keyword_args
 * 
 * def p_c_base_type(s, self_flag = 0, nonempty = 0, templates = None):             # <<<<<<<<<<<<<<
 *     # If self_flag is true, this is the base type for the
 *     # self argument of a C method of an extension type.
 */
  __pyx_tuple__150 = PyTuple_Pack(4, __pyx_n_s_s_2, __pyx_n_s_self_flag, __pyx_n_s_nonempty, __pyx_n_s_templates); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(0, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__150);
  __Pyx_GIVEREF(__pyx_tuple__150);
  __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_p_c_base_type, 2345, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) __PYX_ERR(0, 2345, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2629
 * special_basic_c_types = cython.declare(dict, {
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_UCS4"    : (0, 0),
 *     "Py_hash_t"  : (2, 0),
 */
  __pyx_tuple__152 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__152)) __PYX_ERR(0, 2629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__152);
  __Pyx_GIVEREF(__pyx_tuple__152);

  /* "Cython/Compiler/Parsing.py":2630
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_hash_t"  : (2, 0),
 *     "Py_ssize_t" : (2, 0),
 */
  __pyx_tuple__153 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(0, 2630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__153);
  __Pyx_GIVEREF(__pyx_tuple__153);

  /* "Cython/Compiler/Parsing.py":2631
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),
 *     "Py_hash_t"  : (2, 0),             # <<<<<<<<<<<<<<
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 */
  __pyx_tuple__154 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(0, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__154);
  __Pyx_GIVEREF(__pyx_tuple__154);

  /* "Cython/Compiler/Parsing.py":2632
 *     "Py_UCS4"    : (0, 0),
 *     "Py_hash_t"  : (2, 0),
 *     "Py_ssize_t" : (2, 0),             # <<<<<<<<<<<<<<
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 */
  __pyx_tuple__155 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(0, 2632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__155);
  __Pyx_GIVEREF(__pyx_tuple__155);

  /* "Cython/Compiler/Parsing.py":2633
 *     "Py_hash_t"  : (2, 0),
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),             # <<<<<<<<<<<<<<
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),
 */
  __pyx_tuple__156 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__156)) __PYX_ERR(0, 2633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__156);
  __Pyx_GIVEREF(__pyx_tuple__156);

  /* "Cython/Compiler/Parsing.py":2634
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),             # <<<<<<<<<<<<<<
 *     "ptrdiff_t"  : (2, 0),
 * })
 */
  __pyx_tuple__157 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(0, 2634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__157);
  __Pyx_GIVEREF(__pyx_tuple__157);

  /* "Cython/Compiler/Parsing.py":2635
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),             # <<<<<<<<<<<<<<
 * })
 * 
 */
  __pyx_tuple__158 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(0, 2635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__158);
  __Pyx_GIVEREF(__pyx_tuple__158);

  /* "Cython/Compiler/Parsing.py":2674
 *     return cname
 * 
 * def p_c_declarator(s, ctx = Ctx(), empty = 0, is_type = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                    assignable = 0, nonempty = 0,
 *                    calling_convention_allowed = 0):
 */
  __pyx_tuple__159 = PyTuple_Pack(8, __pyx_n_s_s_2, __pyx_n_s_ctx, __pyx_n_s_empty, __pyx_n_s_is_type, __pyx_n_s_cmethod_flag, __pyx_n_s_assignable, __pyx_n_s_nonempty, __pyx_n_s_calling_convention_allowed); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(0, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__159);
  __Pyx_GIVEREF(__pyx_tuple__159);
  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(8, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_p_c_declarator, 2674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(0, 2674, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2866
 * c_arg_list_terminators = cython.declare(set, set(['*', '**', '.', ')', ':']))
 * 
 * def p_c_arg_list(s, ctx = Ctx(), in_pyfunc = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                  nonempty_declarators = 0, kw_only = 0, annotated = 1):
 *     #  Comma-separated list of C argument declarations, possibly empty.
 */
  __pyx_tuple__163 = PyTuple_Pack(7, __pyx_n_s_s_2, __pyx_n_s_ctx, __pyx_n_s_in_pyfunc, __pyx_n_s_cmethod_flag, __pyx_n_s_nonempty_declarators, __pyx_n_s_kw_only, __pyx_n_s_annotated); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(0, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__163);
  __Pyx_GIVEREF(__pyx_tuple__163);
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_p_c_arg_list, 2866, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 2866, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3506
 * 
 * 
 * def p_code(s, level=None, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':
 */
  __pyx_tuple__165 = PyTuple_Pack(3, __pyx_n_s_s_2, __pyx_n_s_level, __pyx_n_s_ctx); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(0, 3506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__165);
  __Pyx_GIVEREF(__pyx_tuple__165);
  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_p_code, 3506, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 3506, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3513
 *     return body
 * 
 * _match_compiler_directive_comment = cython.declare(object, re.compile(             # <<<<<<<<<<<<<<
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)
 * 
 */
  __pyx_tuple__167 = PyTuple_Pack(1, __pyx_kp_u_s_cython_s_s_w_s); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(0, 3513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__167);
  __Pyx_GIVEREF(__pyx_tuple__167);

  /* "Cython/Compiler/Parsing.py":3530
 *     return result
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 * 
 */
  __pyx_tuple__168 = PyTuple_Pack(4, __pyx_n_s_s_2, __pyx_n_s_pxd, __pyx_n_s_full_module_name, __pyx_n_s_ctx); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(0, 3530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__168);
  __Pyx_GIVEREF(__pyx_tuple__168);
  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_p_module, 3530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(0, 3530, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":3653
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     ind = "  " * level
 *     if node:
 */
  __pyx_tuple__170 = PyTuple_Pack(4, __pyx_n_s_f, __pyx_n_s_node, __pyx_n_s_level, __pyx_n_s_key); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(0, 3653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__170);
  __Pyx_GIVEREF(__pyx_tuple__170);
  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tmp_pip_install_9i_72p5f_cython, __pyx_n_s_print_parse_tree, 3653, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(0, 3653, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1114111 = PyInt_FromLong(1114111L); if (unlikely(!__pyx_int_1114111)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initParsing(void); /*proto*/
PyMODINIT_FUNC initParsing(void)
#else
PyMODINIT_FUNC PyInit_Parsing(void); /*proto*/
PyMODINIT_FUNC PyInit_Parsing(void)
#endif
{
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannyDeclarations
  #if CYTHON_REFNANNY
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
  if (!__Pyx_RefNanny) {
      PyErr_Clear();
      __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
      if (!__Pyx_RefNanny)
          Py_FatalError("failed to import 'refnanny' module");
  }
  #endif
  __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_Parsing(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Module creation code ---*/
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("Parsing", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  #if CYTHON_COMPILING_IN_PYPY
  Py_INCREF(__pyx_b);
  #endif
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_Cython__Compiler__Parsing) {
    if (PyObject_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "Cython.Compiler.Parsing")) {
      if (unlikely(PyDict_SetItemString(modules, "Cython.Compiler.Parsing", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global init code ---*/
  __pyx_v_6Cython_8Compiler_7Parsing_Nodes = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_ExprNodes = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_EncodedString = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_bytes_literal = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_StringEncoding = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_Future = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_Options = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_error = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_warning = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_Builtin = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_ModuleNode = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_Utils = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_re = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing__unicode = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing__bytes = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_partial = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_reduce = Py_None; Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_expr_terminators = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_imported_name_kinds = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_inequality_relations = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing_c_arg_list_terminators = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment = Py_None; Py_INCREF(Py_None);
  /*--- Variable export code ---*/
  /*--- Function export code ---*/
  if (__Pyx_ExportFunction("p_module", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_module, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_module *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_code", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_code, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_code *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_ident", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_ident, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_ident *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_ident_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_ident_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_binop_operator", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_binop_operator, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_binop_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_binop_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, __pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_lambdef", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_lambdef, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_lambdef *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_lambdef_nocond", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_lambdef_nocond, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_test", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_test, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_test_nocond", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_test_nocond, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_or_test", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_or_test, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_rassoc_binop_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_rassoc_binop_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, __pyx_t_6Cython_8Compiler_7Parsing_p_sub_expr_func)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_and_test", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_and_test, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_not_test", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_not_test, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_comparison", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_comparison, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_test_or_starred_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_starred_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cascaded_cmp", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cascaded_cmp, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cmp_op", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cmp_op, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_bit_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_xor_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_xor_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_and_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_and_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_shift_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_shift_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_arith_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_arith_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_term", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_term, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_factor", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_factor, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_p_factor", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing__p_factor, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_typecast", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_typecast, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_sizeof", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_sizeof, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_yield_expression", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_yield_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_yield_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_async_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_async_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_power", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_power, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_new_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_new_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_trailer", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_trailer, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_call_parse_args", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_call_build_packed_args", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args, "PyObject *(PyObject *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_call", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_call, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_index", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_index, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_subscript_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_subscript_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_subscript", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_subscript, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_slice_element", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_slice_element, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("expect_ellipsis", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_expect_ellipsis, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("make_slice_nodes", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes, "PyObject *(PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("make_slice_node", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_make_slice_node, "PyObject *(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_make_slice_node *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_atom", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_atom, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_int_literal", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_int_literal, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_name", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_name, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("wrap_compile_time_constant", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_wrap_compile_time_constant, "PyObject *(PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cat_string_literal", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_opt_string_literal", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_opt_string_literal, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_opt_string_literal *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("check_for_non_ascii_characters", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters, "int (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_string_literal", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_string_literal, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_f_string", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_f_string, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_f_string_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_f_string_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, Py_ssize_t)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_list_maker", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_list_maker, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_comp_iter", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_comp_iter, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_comp_for", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_comp_for, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_comp_if", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_comp_if, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_dict_or_set_maker", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_dict_or_set_maker, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_backquote_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_backquote_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_simple_expr_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_simple_expr_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_expr_list *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_test_or_starred_expr_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_test_or_starred_expr_list *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_testlist", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_testlist, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_testlist_star_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_testlist_star_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_testlist_comp", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_testlist_comp, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_genexp", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_genexp, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_global_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_global_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_nonlocal_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_nonlocal_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_expression_or_assignment", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_expression_or_assignment, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_print_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_print_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_exec_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_exec_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_del_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_del_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_pass_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_pass_statement *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_break_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_break_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_continue_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_continue_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_return_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_return_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_raise_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_raise_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_import_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_import_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_from_import_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_from_import_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_imported_name", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_imported_name, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_dotted_name", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_as_name", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_as_name, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_assert_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_assert_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_if_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_if_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_if_clause", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_if_clause, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_else_clause", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_else_clause, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_while_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_while_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_for_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_for_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_statement *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_for_bounds", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_for_bounds, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_bounds *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_for_from_relation", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_for_from_step", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_for_from_step, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_target", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_target, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_for_target", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_for_target, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_for_iterator", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_for_iterator, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_try_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_try_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_except_clause", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_except_clause, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_include_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_include_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_with_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_with_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_with_items", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_with_items, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_with_items *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_with_template", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_with_template, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_simple_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_simple_statement_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_simple_statement_list *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_compile_time_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_compile_time_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_DEF_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_DEF_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_IF_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_IF_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_statement_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_statement_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_suite", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_suite, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_suite_with_docstring", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_suite_with_docstring, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite_with_docstring *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_extract_docstring", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing__extract_docstring, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_positional_and_keyword_args", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_base_type", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_calling_convention", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_calling_convention, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_complex_base_type", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_complex_base_type, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_complex_base_type *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_simple_base_type", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_base_type, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int, int, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_simple_base_type *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_buffer_or_template", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_buffer_or_template, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_bracketed_base_type", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_bracketed_base_type, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_memoryviewslice_access", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_is_memoryviewslice_access, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_memoryviewslice_access", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_memoryviewslice_access, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("looking_at_name", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_looking_at_name, "int (struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("looking_at_expr", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("looking_at_base_type", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_looking_at_base_type, "int (struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("looking_at_dotted_name", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_looking_at_dotted_name, "int (struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("looking_at_call", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_looking_at_call, "int (struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_sign_and_longness", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_sign_and_longness, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_opt_cname", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_declarator", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_declarator *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_array_declarator", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_array_declarator, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_func_declarator", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_declarator, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, PyObject *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_simple_declarator", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_simple_declarator, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, int, int, int, int, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_nogil", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_nogil, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_with_gil", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_with_gil, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_exception_value_clause", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_exception_value_clause, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_arg_list", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_list, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_list *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_optional_ellipsis", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_optional_ellipsis, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_arg_decl", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_decl, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_arg_decl *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_api", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_api, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cdef_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cdef_block", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_block, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cdef_extern_block", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cdef_extern_block, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_enum_definition", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_definition, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_enum_line", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_line, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_enum_item", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_enum_item, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_struct_or_union_definition", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_struct_or_union_definition, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_fused_definition", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_fused_definition, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_struct_enum", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_struct_enum, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_visibility", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_visibility, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_modifiers", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_modifiers, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_func_or_var_declaration", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_ctypedef_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_decorators", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_decorators, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_def_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_def_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_def_statement *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_varargslist", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_varargslist, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_varargslist *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_py_arg_decl", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_py_arg_decl, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_py_arg_decl *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_class_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_class_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_class_definition", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_definition, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_c_class_options", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_options, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_property_decl", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_property_decl, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_doc_string", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_doc_string, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_ignorable_statement", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_ignorable_statement, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_compiler_directive_comments", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_compiler_directive_comments, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_template_definition", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_template_definition, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cpp_class_definition", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("p_cpp_class_attribute", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_attribute, "PyObject *(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Type init code ---*/
  /*--- Type import code ---*/
  __pyx_ptype_6Cython_4Plex_7Actions_Action = __Pyx_ImportType("Cython.Plex.Actions", "Action", sizeof(struct __pyx_obj_6Cython_4Plex_7Actions_Action), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_7Actions_Action)) __PYX_ERR(1, 2, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_7Actions_Action = (struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Action*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_7Actions_Action->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_7Actions_Action)) __PYX_ERR(1, 2, __pyx_L1_error)
  __pyx_ptype_6Cython_4Plex_7Actions_Return = __Pyx_ImportType("Cython.Plex.Actions", "Return", sizeof(struct __pyx_obj_6Cython_4Plex_7Actions_Return), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_7Actions_Return)) __PYX_ERR(1, 6, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_7Actions_Return = (struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Return*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_7Actions_Return->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_7Actions_Return)) __PYX_ERR(1, 6, __pyx_L1_error)
  __pyx_ptype_6Cython_4Plex_7Actions_Call = __Pyx_ImportType("Cython.Plex.Actions", "Call", sizeof(struct __pyx_obj_6Cython_4Plex_7Actions_Call), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_7Actions_Call)) __PYX_ERR(1, 11, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_7Actions_Call = (struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Call*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_7Actions_Call->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_7Actions_Call)) __PYX_ERR(1, 11, __pyx_L1_error)
  __pyx_ptype_6Cython_4Plex_7Actions_Begin = __Pyx_ImportType("Cython.Plex.Actions", "Begin", sizeof(struct __pyx_obj_6Cython_4Plex_7Actions_Begin), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_7Actions_Begin)) __PYX_ERR(1, 16, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_7Actions_Begin = (struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Begin*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_7Actions_Begin->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_7Actions_Begin)) __PYX_ERR(1, 16, __pyx_L1_error)
  __pyx_ptype_6Cython_4Plex_7Actions_Ignore = __Pyx_ImportType("Cython.Plex.Actions", "Ignore", sizeof(struct __pyx_obj_6Cython_4Plex_7Actions_Ignore), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_7Actions_Ignore)) __PYX_ERR(1, 21, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_7Actions_Ignore = (struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Ignore*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_7Actions_Ignore->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_7Actions_Ignore)) __PYX_ERR(1, 21, __pyx_L1_error)
  __pyx_ptype_6Cython_4Plex_7Actions_Text = __Pyx_ImportType("Cython.Plex.Actions", "Text", sizeof(struct __pyx_obj_6Cython_4Plex_7Actions_Text), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_7Actions_Text)) __PYX_ERR(1, 24, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_7Actions_Text = (struct __pyx_vtabstruct_6Cython_4Plex_7Actions_Text*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_7Actions_Text->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_7Actions_Text)) __PYX_ERR(1, 24, __pyx_L1_error)
  __pyx_ptype_6Cython_4Plex_8Scanners_Scanner = __Pyx_ImportType("Cython.Plex.Scanners", "Scanner", sizeof(struct __pyx_obj_6Cython_4Plex_8Scanners_Scanner), 1); if (unlikely(!__pyx_ptype_6Cython_4Plex_8Scanners_Scanner)) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_vtabptr_6Cython_4Plex_8Scanners_Scanner = (struct __pyx_vtabstruct_6Cython_4Plex_8Scanners_Scanner*)__Pyx_GetVtable(__pyx_ptype_6Cython_4Plex_8Scanners_Scanner->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_4Plex_8Scanners_Scanner)) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_ptype_6Cython_8Compiler_8Scanning_Method = __Pyx_ImportType("Cython.Compiler.Scanning", "Method", sizeof(struct __pyx_obj_6Cython_8Compiler_8Scanning_Method), 1); if (unlikely(!__pyx_ptype_6Cython_8Compiler_8Scanning_Method)) __PYX_ERR(3, 12, __pyx_L1_error)
  __pyx_ptype_6Cython_8Compiler_8Scanning_CompileTimeScope = __Pyx_ImportType("Cython.Compiler.Scanning", "CompileTimeScope", sizeof(struct __pyx_obj_6Cython_8Compiler_8Scanning_CompileTimeScope), 1); if (unlikely(!__pyx_ptype_6Cython_8Compiler_8Scanning_CompileTimeScope)) __PYX_ERR(3, 18, __pyx_L1_error)
  __pyx_vtabptr_6Cython_8Compiler_8Scanning_CompileTimeScope = (struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_CompileTimeScope*)__Pyx_GetVtable(__pyx_ptype_6Cython_8Compiler_8Scanning_CompileTimeScope->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_8Compiler_8Scanning_CompileTimeScope)) __PYX_ERR(3, 18, __pyx_L1_error)
  __pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner = __Pyx_ImportType("Cython.Compiler.Scanning", "PyrexScanner", sizeof(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner), 1); if (unlikely(!__pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner)) __PYX_ERR(3, 26, __pyx_L1_error)
  __pyx_vtabptr_6Cython_8Compiler_8Scanning_PyrexScanner = (struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner*)__Pyx_GetVtable(__pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner->tp_dict); if (unlikely(!__pyx_vtabptr_6Cython_8Compiler_8Scanning_PyrexScanner)) __PYX_ERR(3, 26, __pyx_L1_error)
  /*--- Variable import code ---*/
  __pyx_t_1 = __Pyx_ImportModule("Cython.Compiler.Scanning"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "any_string_prefix", (void **)&__pyx_vp_6Cython_8Compiler_8Scanning_any_string_prefix, "PyObject *") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "IDENT", (void **)&__pyx_vp_6Cython_8Compiler_8Scanning_IDENT, "PyObject *") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  /*--- Function import code ---*/
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif

  /* "Cython/Compiler/Parsing.py":18
 *                partial=object, reduce=object, _IS_PY3=cython.bint)
 * 
 * from io import StringIO             # <<<<<<<<<<<<<<
 * import re
 * import sys
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_StringIO);
  __Pyx_GIVEREF(__pyx_n_s_StringIO);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_StringIO);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_io, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_StringIO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_StringIO, __pyx_t_2) < 0) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":19
 * 
 * from io import StringIO
 * import re             # <<<<<<<<<<<<<<
 * import sys
 * from unicodedata import lookup as lookup_unicodechar
 */
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_re, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_re);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_re, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":20
 * from io import StringIO
 * import re
 * import sys             # <<<<<<<<<<<<<<
 * from unicodedata import lookup as lookup_unicodechar
 * from functools import partial, reduce
 */
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_3) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":21
 * import re
 * import sys
 * from unicodedata import lookup as lookup_unicodechar             # <<<<<<<<<<<<<<
 * from functools import partial, reduce
 * 
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_lookup);
  __Pyx_GIVEREF(__pyx_n_s_lookup);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_lookup);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_unicodedata, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_lookup); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":22
 * import sys
 * from unicodedata import lookup as lookup_unicodechar
 * from functools import partial, reduce             # <<<<<<<<<<<<<<
 * 
 * from .Scanning import PyrexScanner, FileSourceDescriptor, StringSourceDescriptor
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_partial);
  __Pyx_GIVEREF(__pyx_n_s_partial);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_partial);
  __Pyx_INCREF(__pyx_n_s_reduce);
  __Pyx_GIVEREF(__pyx_n_s_reduce);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_reduce);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_functools, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_partial); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_partial);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_partial, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_reduce); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_reduce);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_reduce, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":24
 * from functools import partial, reduce
 * 
 * from .Scanning import PyrexScanner, FileSourceDescriptor, StringSourceDescriptor             # <<<<<<<<<<<<<<
 * from . import Nodes
 * from . import ExprNodes
 */
  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_PyrexScanner);
  __Pyx_GIVEREF(__pyx_n_s_PyrexScanner);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_PyrexScanner);
  __Pyx_INCREF(__pyx_n_s_FileSourceDescriptor);
  __Pyx_GIVEREF(__pyx_n_s_FileSourceDescriptor);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_s_FileSourceDescriptor);
  __Pyx_INCREF(__pyx_n_s_StringSourceDescriptor);
  __Pyx_GIVEREF(__pyx_n_s_StringSourceDescriptor);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_s_StringSourceDescriptor);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_Scanning, __pyx_t_3, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_FileSourceDescriptor); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_StringSourceDescriptor); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_StringSourceDescriptor, __pyx_t_3) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":25
 * 
 * from .Scanning import PyrexScanner, FileSourceDescriptor, StringSourceDescriptor
 * from . import Nodes             # <<<<<<<<<<<<<<
 * from . import ExprNodes
 * from . import Builtin
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Nodes);
  __Pyx_GIVEREF(__pyx_n_s_Nodes);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Nodes);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s__50, __pyx_t_2, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_Nodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Nodes);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":26
 * from .Scanning import PyrexScanner, FileSourceDescriptor, StringSourceDescriptor
 * from . import Nodes
 * from . import ExprNodes             # <<<<<<<<<<<<<<
 * from . import Builtin
 * from . import StringEncoding
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_ExprNodes);
  __Pyx_GIVEREF(__pyx_n_s_ExprNodes);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ExprNodes);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s__50, __pyx_t_3, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":27
 * from . import Nodes
 * from . import ExprNodes
 * from . import Builtin             # <<<<<<<<<<<<<<
 * from . import StringEncoding
 * from .StringEncoding import EncodedString, bytes_literal, _unicode, _bytes
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Builtin);
  __Pyx_GIVEREF(__pyx_n_s_Builtin);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Builtin);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s__50, __pyx_t_2, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_Builtin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Builtin);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":28
 * from . import ExprNodes
 * from . import Builtin
 * from . import StringEncoding             # <<<<<<<<<<<<<<
 * from .StringEncoding import EncodedString, bytes_literal, _unicode, _bytes
 * from .ModuleNode import ModuleNode
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_StringEncoding);
  __Pyx_GIVEREF(__pyx_n_s_StringEncoding);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_StringEncoding);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s__50, __pyx_t_3, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_StringEncoding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":29
 * from . import Builtin
 * from . import StringEncoding
 * from .StringEncoding import EncodedString, bytes_literal, _unicode, _bytes             # <<<<<<<<<<<<<<
 * from .ModuleNode import ModuleNode
 * from .Errors import error, warning
 */
  __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_EncodedString);
  __Pyx_GIVEREF(__pyx_n_s_EncodedString);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_EncodedString);
  __Pyx_INCREF(__pyx_n_s_bytes_literal);
  __Pyx_GIVEREF(__pyx_n_s_bytes_literal);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_bytes_literal);
  __Pyx_INCREF(__pyx_n_s_unicode);
  __Pyx_GIVEREF(__pyx_n_s_unicode);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_unicode);
  __Pyx_INCREF(__pyx_n_s_bytes);
  __Pyx_GIVEREF(__pyx_n_s_bytes);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_bytes);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_StringEncoding, __pyx_t_2, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_EncodedString); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_bytes_literal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_bytes_literal);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_bytes_literal, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing__unicode);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing__unicode, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_bytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing__bytes);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing__bytes, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":30
 * from . import StringEncoding
 * from .StringEncoding import EncodedString, bytes_literal, _unicode, _bytes
 * from .ModuleNode import ModuleNode             # <<<<<<<<<<<<<<
 * from .Errors import error, warning
 * from .. import Utils
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_ModuleNode);
  __Pyx_GIVEREF(__pyx_n_s_ModuleNode);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ModuleNode);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_ModuleNode, __pyx_t_3, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ModuleNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":31
 * from .StringEncoding import EncodedString, bytes_literal, _unicode, _bytes
 * from .ModuleNode import ModuleNode
 * from .Errors import error, warning             # <<<<<<<<<<<<<<
 * from .. import Utils
 * from . import Future
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_error);
  __Pyx_GIVEREF(__pyx_n_s_error);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_error);
  __Pyx_INCREF(__pyx_n_s_warning);
  __Pyx_GIVEREF(__pyx_n_s_warning);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_warning);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_Errors, __pyx_t_2, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_warning);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_warning, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":32
 * from .ModuleNode import ModuleNode
 * from .Errors import error, warning
 * from .. import Utils             # <<<<<<<<<<<<<<
 * from . import Future
 * from . import Options
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_Utils);
  __Pyx_GIVEREF(__pyx_n_s_Utils);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_Utils);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s__50, __pyx_t_3, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Utils); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Utils);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Utils, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":33
 * from .Errors import error, warning
 * from .. import Utils
 * from . import Future             # <<<<<<<<<<<<<<
 * from . import Options
 * 
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Future);
  __Pyx_GIVEREF(__pyx_n_s_Future);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Future);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s__50, __pyx_t_2, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_Future); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Future);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":34
 * from .. import Utils
 * from . import Future
 * from . import Options             # <<<<<<<<<<<<<<
 * 
 * _IS_PY3 = sys.version_info[0] >= 3
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_s_Options);
  __Pyx_GIVEREF(__pyx_n_s_Options);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_Options);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s__50, __pyx_t_3, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Options); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Options);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Options, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":36
 * from . import Options
 * 
 * _IS_PY3 = sys.version_info[0] >= 3             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_6Cython_8Compiler_7Parsing__IS_PY3 = __pyx_t_4;

  /* "Cython/Compiler/Parsing.py":39
 * 
 * 
 * class Ctx(object):             # <<<<<<<<<<<<<<
 *     #  Parsing context
 *     level = 'other'
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_builtin_object);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_3, __pyx_n_s_Ctx, __pyx_n_s_Ctx, (PyObject *) NULL, __pyx_n_s_Cython_Compiler_Parsing, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "Cython/Compiler/Parsing.py":41
 * class Ctx(object):
 *     #  Parsing context
 *     level = 'other'             # <<<<<<<<<<<<<<
 *     visibility = 'private'
 *     cdef_flag = 0
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_level, __pyx_n_u_other) < 0) __PYX_ERR(0, 41, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":42
 *     #  Parsing context
 *     level = 'other'
 *     visibility = 'private'             # <<<<<<<<<<<<<<
 *     cdef_flag = 0
 *     typedef_flag = 0
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_visibility, __pyx_n_u_private) < 0) __PYX_ERR(0, 42, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":43
 *     level = 'other'
 *     visibility = 'private'
 *     cdef_flag = 0             # <<<<<<<<<<<<<<
 *     typedef_flag = 0
 *     api = 0
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_cdef_flag, __pyx_int_0) < 0) __PYX_ERR(0, 43, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":44
 *     visibility = 'private'
 *     cdef_flag = 0
 *     typedef_flag = 0             # <<<<<<<<<<<<<<
 *     api = 0
 *     overridable = 0
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_typedef_flag, __pyx_int_0) < 0) __PYX_ERR(0, 44, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":45
 *     cdef_flag = 0
 *     typedef_flag = 0
 *     api = 0             # <<<<<<<<<<<<<<
 *     overridable = 0
 *     nogil = 0
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_api, __pyx_int_0) < 0) __PYX_ERR(0, 45, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":46
 *     typedef_flag = 0
 *     api = 0
 *     overridable = 0             # <<<<<<<<<<<<<<
 *     nogil = 0
 *     namespace = None
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_overridable, __pyx_int_0) < 0) __PYX_ERR(0, 46, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":47
 *     api = 0
 *     overridable = 0
 *     nogil = 0             # <<<<<<<<<<<<<<
 *     namespace = None
 *     templates = None
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_nogil, __pyx_int_0) < 0) __PYX_ERR(0, 47, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":48
 *     overridable = 0
 *     nogil = 0
 *     namespace = None             # <<<<<<<<<<<<<<
 *     templates = None
 *     allow_struct_enum_decorator = False
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_namespace, Py_None) < 0) __PYX_ERR(0, 48, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":49
 *     nogil = 0
 *     namespace = None
 *     templates = None             # <<<<<<<<<<<<<<
 *     allow_struct_enum_decorator = False
 * 
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_templates, Py_None) < 0) __PYX_ERR(0, 49, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":50
 *     namespace = None
 *     templates = None
 *     allow_struct_enum_decorator = False             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, **kwds):
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_allow_struct_enum_decorator, Py_False) < 0) __PYX_ERR(0, 50, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":52
 *     allow_struct_enum_decorator = False
 * 
 *     def __init__(self, **kwds):             # <<<<<<<<<<<<<<
 *         self.__dict__.update(kwds)
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_3Ctx_1__init__, 0, __pyx_n_s_Ctx___init, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_6) < 0) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":55
 *         self.__dict__.update(kwds)
 * 
 *     def __call__(self, **kwds):             # <<<<<<<<<<<<<<
 *         ctx = Ctx()
 *         d = ctx.__dict__
 */
  __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_3Ctx_3__call__, 0, __pyx_n_s_Ctx___call, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_call, __pyx_t_6) < 0) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":39
 * 
 * 
 * class Ctx(object):             # <<<<<<<<<<<<<<
 *     #  Parsing context
 *     level = 'other'
 */
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_Ctx, __pyx_t_3, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ctx, __pyx_t_6) < 0) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":250
 *     return op
 * 
 * comparison_ops = cython.declare(set, set([             # <<<<<<<<<<<<<<
 *     '<', '>', '==', '>=', '<=', '<>', '!=',
 *     'in', 'is', 'not'
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__26) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__29) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__145) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__146) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__147) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__7) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__8) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_in) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_is) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_not) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_comparison_ops);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":645
 *     return result
 * 
 * def make_slice_node(pos, start, stop = None, step = None):             # <<<<<<<<<<<<<<
 *     if not start:
 *         start = ExprNodes.NoneNode(pos)
 */
  __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_1make_slice_node, 0, __pyx_n_s_make_slice_node, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__149)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_slice_node, __pyx_t_3) < 0) __PYX_ERR(0, 645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1401
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 * 
 * expr_terminators = cython.declare(set, set([             # <<<<<<<<<<<<<<
 *     ')', ']', '}', ':', '=', 'NEWLINE']))
 * 
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__31) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__43) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__67) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__3) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__40) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_NEWLINE) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_expr_terminators);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_expr_terminators, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1707
 * 
 * 
 * imported_name_kinds = cython.declare(set, set(['class', 'struct', 'union']))             # <<<<<<<<<<<<<<
 * 
 * def p_imported_name(s, is_cimport):
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_n_u_class_2) < 0) __PYX_ERR(0, 1707, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_struct) < 0) __PYX_ERR(0, 1707, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_union) < 0) __PYX_ERR(0, 1707, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_imported_name_kinds);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_imported_name_kinds, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1754
 * 
 * 
 * statement_terminators = cython.declare(set, set([';', 'NEWLINE', 'EOF']))             # <<<<<<<<<<<<<<
 * 
 * def p_if_statement(s):
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__96) < 0) __PYX_ERR(0, 1754, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_NEWLINE) < 0) __PYX_ERR(0, 1754, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_EOF) < 0) __PYX_ERR(0, 1754, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_statement_terminators);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1864
 *         return None
 * 
 * inequality_relations = cython.declare(set, set(['<', '<=', '>', '>=']))             # <<<<<<<<<<<<<<
 * 
 * def p_target(s, terminator):
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__26) < 0) __PYX_ERR(0, 1864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__147) < 0) __PYX_ERR(0, 1864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__29) < 0) __PYX_ERR(0, 1864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__146) < 0) __PYX_ERR(0, 1864, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_inequality_relations);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_inequality_relations, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2262
 * 
 * 
 * def p_suite(s, ctx=Ctx()):             # <<<<<<<<<<<<<<
 *     return p_suite_with_docstring(s, ctx, with_doc_only=False)[1]
 * 
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_5) {
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2262, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_k__108 = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2345
 *     return positional_args, keyword_args
 * 
 * def p_c_base_type(s, self_flag = 0, nonempty = 0, templates = None):             # <<<<<<<<<<<<<<
 *     # If self_flag is true, this is the base type for the
 *     # self argument of a C method of an extension type.
 */
  __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_3p_c_base_type, 0, __pyx_n_s_p_c_base_type, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__151)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_p_c_base_type, __pyx_t_3) < 0) __PYX_ERR(0, 2345, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2362
 * 
 * 
 * calling_convention_words = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["__stdcall", "__cdecl", "__fastcall"]))
 * 
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_n_u_stdcall) < 0) __PYX_ERR(0, 2363, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_cdecl) < 0) __PYX_ERR(0, 2363, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_fastcall) < 0) __PYX_ERR(0, 2363, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2624
 *     return result
 * 
 * basic_c_type_names = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["void", "char", "int", "float", "double", "bint"]))
 * 
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_n_u_void) < 0) __PYX_ERR(0, 2625, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_char) < 0) __PYX_ERR(0, 2625, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_int) < 0) __PYX_ERR(0, 2625, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_float) < 0) __PYX_ERR(0, 2625, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_double) < 0) __PYX_ERR(0, 2625, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_bint) < 0) __PYX_ERR(0, 2625, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2629
 * special_basic_c_types = cython.declare(dict, {
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_UCS4"    : (0, 0),
 *     "Py_hash_t"  : (2, 0),
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Py_UNICODE, __pyx_tuple__152) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2630
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_hash_t"  : (2, 0),
 *     "Py_ssize_t" : (2, 0),
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Py_UCS4, __pyx_tuple__153) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2631
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),
 *     "Py_hash_t"  : (2, 0),             # <<<<<<<<<<<<<<
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Py_hash_t, __pyx_tuple__154) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2632
 *     "Py_UCS4"    : (0, 0),
 *     "Py_hash_t"  : (2, 0),
 *     "Py_ssize_t" : (2, 0),             # <<<<<<<<<<<<<<
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Py_ssize_t, __pyx_tuple__155) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2633
 *     "Py_hash_t"  : (2, 0),
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),             # <<<<<<<<<<<<<<
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_ssize_t, __pyx_tuple__156) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2634
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),             # <<<<<<<<<<<<<<
 *     "ptrdiff_t"  : (2, 0),
 * })
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_size_t, __pyx_tuple__157) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)

  /* "Cython/Compiler/Parsing.py":2635
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),             # <<<<<<<<<<<<<<
 * })
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_ptrdiff_t, __pyx_tuple__158) < 0) __PYX_ERR(0, 2629, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2638
 * })
 * 
 * sign_and_longness_words = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["short", "long", "signed", "unsigned"]))
 * 
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_n_u_short) < 0) __PYX_ERR(0, 2639, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_long) < 0) __PYX_ERR(0, 2639, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_signed) < 0) __PYX_ERR(0, 2639, __pyx_L1_error)
  if (PySet_Add(__pyx_t_3, __pyx_n_u_unsigned) < 0) __PYX_ERR(0, 2639, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words, ((PyObject*)__pyx_t_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2644
 *     set,
 *     basic_c_type_names
 *     | sign_and_longness_words             # <<<<<<<<<<<<<<
 *     | set(special_basic_c_types))
 * 
 */
  __pyx_t_3 = PyNumber_Or(__pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names, __pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":2645
 *     basic_c_type_names
 *     | sign_and_longness_words
 *     | set(special_basic_c_types))             # <<<<<<<<<<<<<<
 * 
 * struct_enum_union = cython.declare(
 */
  __pyx_t_2 = PySet_New(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyNumber_Or(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words, ((PyObject*)__pyx_t_5));
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2647
 *     | set(special_basic_c_types))
 * 
 * struct_enum_union = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["struct", "union", "enum", "packed"]))
 * 
 */
  __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PySet_Add(__pyx_t_5, __pyx_n_u_struct) < 0) __PYX_ERR(0, 2648, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_n_u_union) < 0) __PYX_ERR(0, 2648, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_n_u_enum) < 0) __PYX_ERR(0, 2648, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_n_u_packed) < 0) __PYX_ERR(0, 2648, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union, ((PyObject*)__pyx_t_5));
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2674
 *     return cname
 * 
 * def p_c_declarator(s, ctx = Ctx(), empty = 0, is_type = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                    assignable = 0, nonempty = 0,
 *                    calling_convention_allowed = 0):
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2674, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2674, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_k__118 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2674, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2674, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_k__118 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_5p_c_declarator, 0, __pyx_n_s_p_c_declarator, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_p_c_declarator, __pyx_t_5) < 0) __PYX_ERR(0, 2674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2733
 *         nogil = nogil or ctx.nogil or with_gil, with_gil = with_gil)
 * 
 * supported_overloaded_operators = cython.declare(set, set([             # <<<<<<<<<<<<<<
 *     '+', '-', '*', '/', '%',
 *     '++', '--', '~', '|', '&', '^', '<<', '>>', ',',
 */
  __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__18) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__19) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__6) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__2) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__22) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__161) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__162) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__25) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__9) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__13) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__11) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__15) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__16) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u_) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__145) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__8) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__146) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__29) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__147) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__26) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__123) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__122) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__76) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__40) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_n_u_bool) < 0) __PYX_ERR(0, 2733, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators, ((PyObject*)__pyx_t_5));
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2864
 *     return exc_val, exc_check
 * 
 * c_arg_list_terminators = cython.declare(set, set(['*', '**', '.', ')', ':']))             # <<<<<<<<<<<<<<
 * 
 * def p_c_arg_list(s, ctx = Ctx(), in_pyfunc = 0, cmethod_flag = 0,
 */
  __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__6) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__38) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__37) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__31) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
  if (PySet_Add(__pyx_t_5, __pyx_kp_u__3) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_c_arg_list_terminators);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_c_arg_list_terminators, ((PyObject*)__pyx_t_5));
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2866
 * c_arg_list_terminators = cython.declare(set, set(['*', '**', '.', ')', ':']))
 * 
 * def p_c_arg_list(s, ctx = Ctx(), in_pyfunc = 0, cmethod_flag = 0,             # <<<<<<<<<<<<<<
 *                  nonempty_declarators = 0, kw_only = 0, annotated = 1):
 *     #  Comma-separated list of C argument declarations, possibly empty.
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2866, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2866, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_k__125 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2866, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2866, __pyx_L1_error)
  }
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_k__125 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_7p_c_arg_list, 0, __pyx_n_s_p_c_arg_list, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_p_c_arg_list, __pyx_t_5) < 0) __PYX_ERR(0, 2866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3506
 * 
 * 
 * def p_code(s, level=None, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     body = p_statement_list(s, ctx(level = level), first_statement = 1)
 *     if s.sy != 'EOF':
 */
  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k__134 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k__134 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_9p_code, 0, __pyx_n_s_p_code, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_p_code, __pyx_t_5) < 0) __PYX_ERR(0, 3506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3513
 *     return body
 * 
 * _match_compiler_directive_comment = cython.declare(object, re.compile(             # <<<<<<<<<<<<<<
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__167, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3514
 * 
 * _match_compiler_directive_comment = cython.declare(object, re.compile(
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)             # <<<<<<<<<<<<<<
 * 
 * def p_compiler_directive_comments(s):
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_match); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3530
 *     return result
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 * 
 */
  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k__136 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k__136 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_11p_module, 0, __pyx_n_s_p_module, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__169)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_p_module, __pyx_t_5) < 0) __PYX_ERR(0, 3530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":3653
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     ind = "  " * level
 *     if node:
 */
  __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_13print_parse_tree, 0, __pyx_n_s_print_parse_tree, NULL, __pyx_n_s_Cython_Compiler_Parsing, __pyx_d, ((PyObject *)__pyx_codeobj__171)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_print_parse_tree, __pyx_t_5) < 0) __PYX_ERR(0, 3653, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":1
 * # cython: auto_cpdef=True, infer_types=True, language_level=3, py2_import=True             # <<<<<<<<<<<<<<
 * #
 * #   Parser
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test_2, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init Cython.Compiler.Parsing", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_DECREF(__pyx_m); __pyx_m = 0;
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init Cython.Compiler.Parsing");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if PY_MAJOR_VERSION < 3
  return;
  #else
  return __pyx_m;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule((char *)modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    PyObject *result;
    int flags;
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
}
#endif  // CYTHON_FAST_PYCCALL

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
#include "frameobject.h"
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = PyThreadState_GET();
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = f->f_localsplus;
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif  // CPython < 3.6
#endif  // CYTHON_FAST_PYCALL

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = func->ob_type->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) {
#else
    if (likely(PyCFunction_Check(func))) {
#endif
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* GetModuleGlobalName */
  static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
    result = PyDict_GetItem(__pyx_d, name);
    if (likely(result)) {
        Py_INCREF(result);
    } else {
#else
    result = PyObject_GetItem(__pyx_d, name);
    if (!result) {
        PyErr_Clear();
#endif
        result = __Pyx_GetBuiltinName(name);
    }
    return result;
}

/* PyObjectCallNoArg */
    #if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) {
#else
    if (likely(PyCFunction_Check(func))) {
#endif
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* BytesEquals */
      static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
      static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* RaiseTooManyValuesToUnpack */
      static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
      static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* RaiseNoneIterError */
      static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* IterFinish */
      static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = PyThreadState_GET();
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* UnpackItemEndCheck */
      static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* GetItemInt */
      static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o);
    if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o);
    if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* PyObjectCallMethod1 */
      static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
    PyObject *method, *result = NULL;
    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
    if (unlikely(!method)) goto done;
#if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(method))) {
        PyObject *self = PyMethod_GET_SELF(method);
        if (likely(self)) {
            PyObject *args;
            PyObject *function = PyMethod_GET_FUNCTION(method);
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(function)) {
                PyObject *args[2] = {self, arg};
                result = __Pyx_PyFunction_FastCall(function, args, 2);
                goto done;
            }
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(function)) {
                PyObject *args[2] = {self, arg};
                result = __Pyx_PyCFunction_FastCall(function, args, 2);
                goto done;
            }
            #endif
            args = PyTuple_New(2);
            if (unlikely(!args)) goto done;
            Py_INCREF(self);
            PyTuple_SET_ITEM(args, 0, self);
            Py_INCREF(arg);
            PyTuple_SET_ITEM(args, 1, arg);
            Py_INCREF(function);
            Py_DECREF(method); method = NULL;
            result = __Pyx_PyObject_Call(function, args, NULL);
            Py_DECREF(args);
            Py_DECREF(function);
            return result;
        }
    }
#endif
    result = __Pyx_PyObject_CallOneArg(method, arg);
done:
    Py_XDECREF(method);
    return result;
}

/* append */
      static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;
    } else {
        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x);
        if (unlikely(!retval))
            return -1;
        Py_DECREF(retval);
    }
    return 0;
}

/* SliceObject */
      static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp;
#if PY_MAJOR_VERSION < 3
    PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
    if (likely(ms && ms->sq_slice)) {
        if (!has_cstart) {
            if (_py_start && (*_py_start != Py_None)) {
                cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
                if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstart = 0;
        }
        if (!has_cstop) {
            if (_py_stop && (*_py_stop != Py_None)) {
                cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
                if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstop = PY_SSIZE_T_MAX;
        }
        if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
            Py_ssize_t l = ms->sq_length(obj);
            if (likely(l >= 0)) {
                if (cstop < 0) {
                    cstop += l;
                    if (cstop < 0) cstop = 0;
                }
                if (cstart < 0) {
                    cstart += l;
                    if (cstart < 0) cstart = 0;
                }
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    goto bad;
                PyErr_Clear();
            }
        }
        return ms->sq_slice(obj, cstart, cstop);
    }
#endif
    mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyInt_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyInt_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    PyErr_Format(PyExc_TypeError,
        "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
bad:
    return NULL;
}

/* GetItemIntUnicode */
      static CYTHON_INLINE Py_UCS4 __Pyx_GetItemInt_Unicode_Fast(PyObject* ustring, Py_ssize_t i,
                                                           int wraparound, int boundscheck) {
    Py_ssize_t length;
    if (unlikely(__Pyx_PyUnicode_READY(ustring) < 0)) return (Py_UCS4)-1;
    if (wraparound | boundscheck) {
        length = __Pyx_PyUnicode_GET_LENGTH(ustring);
        if (wraparound & unlikely(i < 0)) i += length;
        if ((!boundscheck) || likely((0 <= i) & (i < length))) {
            return __Pyx_PyUnicode_READ_CHAR(ustring, i);
        } else {
            PyErr_SetString(PyExc_IndexError, "string index out of range");
            return (Py_UCS4)-1;
        }
    } else {
        return __Pyx_PyUnicode_READ_CHAR(ustring, i);
    }
}

/* PyUnicode_Substring */
      static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
            PyObject* text, Py_ssize_t start, Py_ssize_t stop) {
    Py_ssize_t length;
    if (unlikely(__Pyx_PyUnicode_READY(text) == -1)) return NULL;
    length = __Pyx_PyUnicode_GET_LENGTH(text);
    if (start < 0) {
        start += length;
        if (start < 0)
            start = 0;
    }
    if (stop < 0)
        stop += length;
    else if (stop > length)
        stop = length;
    length = stop - start;
    if (length <= 0)
        return PyUnicode_FromUnicode(NULL, 0);
#if CYTHON_PEP393_ENABLED
    return PyUnicode_FromKindAndData(PyUnicode_KIND(text),
        PyUnicode_1BYTE_DATA(text) + start*PyUnicode_KIND(text), stop-start);
#else
    return PyUnicode_FromUnicode(PyUnicode_AS_UNICODE(text)+start, stop-start);
#endif
}

/* unicode_iter */
      static CYTHON_INLINE int __Pyx_init_unicode_iteration(
    PyObject* ustring, Py_ssize_t *length, void** data, int *kind) {
#if CYTHON_PEP393_ENABLED
    if (unlikely(__Pyx_PyUnicode_READY(ustring) < 0)) return -1;
    *kind   = PyUnicode_KIND(ustring);
    *length = PyUnicode_GET_LENGTH(ustring);
    *data   = PyUnicode_DATA(ustring);
#else
    *kind   = 0;
    *length = PyUnicode_GET_SIZE(ustring);
    *data   = (void*)PyUnicode_AS_UNICODE(ustring);
#endif
    return 0;
}

/* PyErrFetchRestore */
      #if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* WriteUnraisableException */
      static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* UnicodeAsUCS4 */
      static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) {
   Py_ssize_t length;
   #if CYTHON_PEP393_ENABLED
   length = PyUnicode_GET_LENGTH(x);
   if (likely(length == 1)) {
       return PyUnicode_READ_CHAR(x, 0);
   }
   #else
   length = PyUnicode_GET_SIZE(x);
   if (likely(length == 1)) {
       return PyUnicode_AS_UNICODE(x)[0];
   }
   #if Py_UNICODE_SIZE == 2
   else if (PyUnicode_GET_SIZE(x) == 2) {
       Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0];
       if (high_val >= 0xD800 && high_val <= 0xDBFF) {
           Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1];
           if (low_val >= 0xDC00 && low_val <= 0xDFFF) {
               return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1)));
           }
       }
   }
   #endif
   #endif
   PyErr_Format(PyExc_ValueError,
                "only single character unicode strings can be converted to Py_UCS4, "
                "got length %" CYTHON_FORMAT_SSIZE_T "d", length);
   return (Py_UCS4)-1;
}

/* object_ord */
      static long __Pyx__PyObject_Ord(PyObject* c) {
    Py_ssize_t size;
    if (PyBytes_Check(c)) {
        size = PyBytes_GET_SIZE(c);
        if (likely(size == 1)) {
            return (unsigned char) PyBytes_AS_STRING(c)[0];
        }
#if PY_MAJOR_VERSION < 3
    } else if (PyUnicode_Check(c)) {
        return (long)__Pyx_PyUnicode_AsPy_UCS4(c);
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    } else if (PyByteArray_Check(c)) {
        size = PyByteArray_GET_SIZE(c);
        if (likely(size == 1)) {
            return (unsigned char) PyByteArray_AS_STRING(c)[0];
        }
#endif
    } else {
        PyErr_Format(PyExc_TypeError,
            "ord() expected string of length 1, but %.200s found", c->ob_type->tp_name);
        return (long)(Py_UCS4)-1;
    }
    PyErr_Format(PyExc_TypeError,
        "ord() expected a character, but string of length %zd found", size);
    return (long)(Py_UCS4)-1;
}

/* SaveResetException */
      #if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* PyErrExceptionMatches */
      #if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    return PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* GetException */
      #if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
#endif
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* PyIntBinop */
        #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) {
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            x = (long)((unsigned long)a + b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            double result;
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* SliceTupleAndList */
        #if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) {
    Py_ssize_t start = *_start, stop = *_stop, length = *_length;
    if (start < 0) {
        start += length;
        if (start < 0)
            start = 0;
    }
    if (stop < 0)
        stop += length;
    else if (stop > length)
        stop = length;
    *_length = stop - start;
    *_start = start;
    *_stop = stop;
}
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject** CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    PyObject* dest;
    Py_ssize_t length = PyList_GET_SIZE(src);
    __Pyx_crop_slice(&start, &stop, &length);
    if (unlikely(length <= 0))
        return PyList_New(0);
    dest = PyList_New(length);
    if (unlikely(!dest))
        return NULL;
    __Pyx_copy_object_array(
        ((PyListObject*)src)->ob_item + start,
        ((PyListObject*)dest)->ob_item,
        length);
    return dest;
}
static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    PyObject* dest;
    Py_ssize_t length = PyTuple_GET_SIZE(src);
    __Pyx_crop_slice(&start, &stop, &length);
    if (unlikely(length <= 0))
        return PyTuple_New(0);
    dest = PyTuple_New(length);
    if (unlikely(!dest))
        return NULL;
    __Pyx_copy_object_array(
        ((PyTupleObject*)src)->ob_item + start,
        ((PyTupleObject*)dest)->ob_item,
        length);
    return dest;
}
#endif

/* GetAttr */
        static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_COMPILING_IN_CPYTHON
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* PyIntBinop */
        #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) {
    if (op1 == op2) {
        Py_RETURN_TRUE;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        if (a == b) {
            Py_RETURN_TRUE;
        } else {
            Py_RETURN_FALSE;
        }
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a;
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                #if PyLong_SHIFT < 30 && PyLong_SHIFT != 15
                default: return PyLong_Type.tp_richcompare(op1, op2, Py_EQ);
                #else
                default: Py_RETURN_FALSE;
                #endif
            }
        }
            if (a == b) {
                Py_RETURN_TRUE;
            } else {
                Py_RETURN_FALSE;
            }
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            if ((double)a == (double)b) {
                Py_RETURN_TRUE;
            } else {
                Py_RETURN_FALSE;
            }
    }
    return PyObject_RichCompare(op1, op2, Py_EQ);
}
#endif

/* None */
        static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

/* ArgTypeTest */
        static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) {
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
}
static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
    const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (none_allowed && obj == Py_None) return 1;
    else if (exact) {
        if (likely(Py_TYPE(obj) == type)) return 1;
        #if PY_MAJOR_VERSION == 2
        else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(PyObject_TypeCheck(obj, type))) return 1;
    }
    __Pyx_RaiseArgumentTypeInvalid(name, obj, type);
    return 0;
}

/* DelItemInt */
        static CYTHON_INLINE int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
    int r;
    if (!j) return -1;
    r = PyObject_DelItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
                                               CYTHON_UNUSED int is_list, CYTHON_NCP_UNUSED int wraparound) {
#if !CYTHON_USE_TYPE_SLOTS
    if (is_list || PySequence_Check(o)) {
        return PySequence_DelItem(o, i);
    }
#else
    PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
    if (likely(m && m->sq_ass_item)) {
        if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
            Py_ssize_t l = m->sq_length(o);
            if (likely(l >= 0)) {
                i += l;
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    return -1;
                PyErr_Clear();
            }
        }
        return m->sq_ass_item(o, i, (PyObject *)NULL);
    }
#endif
    return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
}

/* SwapException */
        #if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* PyObjectCallMethod0 */
        static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method, *result = NULL;
    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
    if (unlikely(!method)) goto bad;
#if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(method))) {
        PyObject *self = PyMethod_GET_SELF(method);
        if (likely(self)) {
            PyObject *function = PyMethod_GET_FUNCTION(method);
            result = __Pyx_PyObject_CallOneArg(function, self);
            Py_DECREF(method);
            return result;
        }
    }
#endif
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* UnpackTupleError */
        static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else if (PyTuple_GET_SIZE(t) < index) {
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
    } else {
      __Pyx_RaiseTooManyValuesError(index);
    }
}

/* UnpackTuple2 */
        static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                             int is_tuple, int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    if (!is_tuple && unlikely(!PyTuple_Check(tuple))) {
        iternextfunc iternext;
        iter = PyObject_GetIter(tuple);
        if (unlikely(!iter)) goto bad;
        if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
        iternext = Py_TYPE(iter)->tp_iternext;
        value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
        value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
        if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
        Py_DECREF(iter);
    } else {
        if (!has_known_size && unlikely(PyTuple_GET_SIZE(tuple) != 2)) {
            __Pyx_UnpackTupleError(tuple, 2);
            goto bad;
        }
#if CYTHON_COMPILING_IN_PYPY
        value1 = PySequence_ITEM(tuple, 0);
        if (unlikely(!value1)) goto bad;
        value2 = PySequence_ITEM(tuple, 1);
        if (unlikely(!value2)) goto bad;
#else
        value1 = PyTuple_GET_ITEM(tuple, 0);
        value2 = PyTuple_GET_ITEM(tuple, 1);
        Py_INCREF(value1);
        Py_INCREF(value2);
#endif
        if (decref_tuple) { Py_DECREF(tuple); }
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
        static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
#if !CYTHON_COMPILING_IN_PYPY
    if (is_dict) {
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
    }
#endif
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        PyObject *key, *value;
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
            return -1;
        }
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
            return 0;
        }
        if (pitem) {
            PyObject* tuple = PyTuple_New(2);
            if (unlikely(!tuple)) {
                return -1;
            }
            Py_INCREF(key);
            Py_INCREF(value);
            PyTuple_SET_ITEM(tuple, 0, key);
            PyTuple_SET_ITEM(tuple, 1, value);
            *pitem = tuple;
        } else {
            if (pkey) {
                Py_INCREF(key);
                *pkey = key;
            }
            if (pvalue) {
                Py_INCREF(value);
                *pvalue = value;
            }
        }
        return 1;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* GetVTable */
        static void* __Pyx_GetVtable(PyObject *dict) {
    void* ptr;
    PyObject *ob = PyObject_GetItem(dict, __pyx_n_s_pyx_vtable);
    if (!ob)
        goto bad;
#if PY_VERSION_HEX >= 0x02070000
    ptr = PyCapsule_GetPointer(ob, 0);
#else
    ptr = PyCObject_AsVoidPtr(ob);
#endif
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* Import */
        static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_VERSION_HEX < 0x03030000
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import_2);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if (strchr(__Pyx_MODULE_NAME, '.')) {
                #if PY_VERSION_HEX < 0x03030000
                PyObject *py_level = PyInt_FromLong(1);
                if (!py_level)
                    goto bad;
                module = PyObject_CallFunctionObjArgs(py_import,
                    name, global_dict, empty_dict, list, py_level, NULL);
                Py_DECREF(py_level);
                #else
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                #endif
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_VERSION_HEX < 0x03030000
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_VERSION_HEX < 0x03030000
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* ImportFrom */
        static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* CalculateMetaclass */
        static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* FetchCommonType */
        static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunction */
        static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
#else
    if (unlikely(value == NULL || !PyString_Check(value))) {
#endif
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
#else
    if (unlikely(value == NULL || !PyString_Check(value))) {
#endif
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(__pyx_CyFunctionObject, func.m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromString(m->func.m_ml->ml_name);
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type);
    if (op == NULL)
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    PyObject_GC_Track(op);
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0 = PySequence_ITEM(arg, 0);
                if (unlikely(!arg0)) return NULL;
                result = (*meth)(self, arg0);
                Py_DECREF(arg0);
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (__pyx_CyFunctionType == NULL) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (!m->defaults)
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* Py3ClassCreate */
            static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs = PyTuple_Pack(2, name, bases);
            if (unlikely(!pargs)) {
                Py_DECREF(prep);
                return NULL;
            }
            ns = PyObject_Call(prep, pargs, mkw);
            Py_DECREF(prep);
            Py_DECREF(pargs);
        } else {
            if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
                return NULL;
            PyErr_Clear();
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module_2, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc_2, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result, *margs;
    PyObject *owned_metaclass = NULL;
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    margs = PyTuple_Pack(3, name, bases, dict);
    if (unlikely(!margs)) {
        result = NULL;
    } else {
        result = PyObject_Call(metaclass, margs, mkw);
        Py_DECREF(margs);
    }
    Py_XDECREF(owned_metaclass);
    return result;
}

/* CodeObjectCache */
            static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
            #include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(filename);
    #else
    py_srcfile = PyUnicode_FromString(filename);
    #endif
    if (!py_srcfile) goto bad;
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    Py_DECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    py_code = __pyx_find_code_object(c_line ? c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        PyThreadState_GET(), /*PyThreadState *tstate,*/
        py_code,             /*PyCodeObject *code,*/
        __pyx_d,      /*PyObject *globals,*/
        0                    /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

/* CIntToPy */
            static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
    const long neg_one = (long) -1, const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* PyUCS4InUnicode */
            static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character) {
#if CYTHON_PEP393_ENABLED
    const int kind = PyUnicode_KIND(unicode);
    if (likely(kind != PyUnicode_WCHAR_KIND)) {
        Py_ssize_t i;
        const void* udata = PyUnicode_DATA(unicode);
        const Py_ssize_t length = PyUnicode_GET_LENGTH(unicode);
        for (i=0; i < length; i++) {
            if (unlikely(character == PyUnicode_READ(kind, udata, i))) return 1;
        }
        return 0;
    }
#endif
    return __Pyx_PyUnicodeBufferContainsUCS4(
        PyUnicode_AS_UNICODE(unicode),
        PyUnicode_GET_SIZE(unicode),
        character);
}
static CYTHON_INLINE int __Pyx_PyUnicodeBufferContainsUCS4(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
    Py_UNICODE uchar;
    Py_UNICODE* pos;
    #if Py_UNICODE_SIZE == 2
    if (character > 65535) {
        Py_UNICODE high_val, low_val;
        high_val = (Py_UNICODE) (0xD800 | (((character - 0x10000) >> 10) & ((1<<10)-1)));
        low_val  = (Py_UNICODE) (0xDC00 | ( (character - 0x10000)        & ((1<<10)-1)));
        for (pos=buffer; pos < buffer+length-1; pos++) {
            if (unlikely(high_val == pos[0]) & unlikely(low_val == pos[1])) return 1;
        }
        return 0;
    }
    #endif
    uchar = (Py_UNICODE) character;
    for (pos=buffer; pos < buffer+length; pos++) {
        if (unlikely(uchar == pos[0])) return 1;
    }
    return 0;
}

/* ObjectAsUCS4 */
            static Py_UCS4 __Pyx__PyObject_AsPy_UCS4(PyObject* x) {
   long ival;
   ival = __Pyx_PyInt_As_long(x);
   if (unlikely(ival < 0)) {
       if (!PyErr_Occurred())
           PyErr_SetString(PyExc_OverflowError,
                           "cannot convert negative value to Py_UCS4");
       return (Py_UCS4)-1;
   } else if (unlikely(ival > 1114111)) {
       PyErr_SetString(PyExc_OverflowError,
                       "value too large to convert to Py_UCS4");
       return (Py_UCS4)-1;
   }
   return (Py_UCS4)ival;
}

/* CIntFromPyVerify */
            #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntFromPy */
            static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
    const long neg_one = (long) -1, const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntFromPy */
            static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
    const int neg_one = (int) -1, const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CheckBinaryVersion */
            static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* FunctionExport */
            static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
    if (!d) {
        PyErr_Clear();
        d = PyDict_New();
        if (!d)
            goto bad;
        Py_INCREF(d);
        if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
            goto bad;
    }
    tmp.fp = f;
#if PY_VERSION_HEX >= 0x02070000
    cobj = PyCapsule_New(tmp.p, sig, 0);
#else
    cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
#endif
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

/* ModuleImport */
            #ifndef __PYX_HAVE_RT_ImportModule
#define __PYX_HAVE_RT_ImportModule
static PyObject *__Pyx_ImportModule(const char *name) {
    PyObject *py_name = 0;
    PyObject *py_module = 0;
    py_name = __Pyx_PyIdentifier_FromString(name);
    if (!py_name)
        goto bad;
    py_module = PyImport_Import(py_name);
    Py_DECREF(py_name);
    return py_module;
bad:
    Py_XDECREF(py_name);
    return 0;
}
#endif

/* TypeImport */
            #ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name,
    size_t size, int strict)
{
    PyObject *py_module = 0;
    PyObject *result = 0;
    PyObject *py_name = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    py_module = __Pyx_ImportModule(module_name);
    if (!py_module)
        goto bad;
    py_name = __Pyx_PyIdentifier_FromString(class_name);
    if (!py_name)
        goto bad;
    result = PyObject_GetAttr(py_module, py_name);
    Py_DECREF(py_name);
    py_name = 0;
    Py_DECREF(py_module);
    py_module = 0;
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (!strict && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd",
            module_name, class_name, basicsize, size);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    else if ((size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd",
            module_name, class_name, basicsize, size);
        goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(py_module);
    Py_XDECREF(result);
    return NULL;
}
#endif

/* VoidPtrImport */
            #ifndef __PYX_HAVE_RT_ImportVoidPtr
#define __PYX_HAVE_RT_ImportVoidPtr
static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
    if (!d)
        goto bad;
    cobj = PyDict_GetItemString(d, name);
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C variable %.200s",
                PyModule_GetName(module), name);
        goto bad;
    }
#if PY_VERSION_HEX >= 0x02070000
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    *p = PyCapsule_GetPointer(cobj, sig);
#else
    {const char *desc, *s1, *s2;
    desc = (const char *)PyCObject_GetDesc(cobj);
    if (!desc)
        goto bad;
    s1 = desc; s2 = sig;
    while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
    if (*s1 != *s2) {
        PyErr_Format(PyExc_TypeError,
            "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), name, sig, desc);
        goto bad;
    }
    *p = PyCObject_AsVoidPtr(cobj);}
#endif
    if (!(*p))
        goto bad;
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(d);
    return -1;
}
#endif

/* InitStrings */
            static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if CYTHON_COMPILING_IN_CPYTHON && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
#if PY_VERSION_HEX < 0x03030000
        char* defenc_c;
        PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
        if (!defenc) return NULL;
        defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        {
            char* end = defenc_c + PyBytes_GET_SIZE(defenc);
            char* c;
            for (c = defenc_c; c < end; c++) {
                if ((unsigned char) (*c) >= 128) {
                    PyUnicode_AsASCIIString(o);
                    return NULL;
                }
            }
        }
#endif
        *length = PyBytes_GET_SIZE(defenc);
        return defenc_c;
#else
        if (__Pyx_PyUnicode_READY(o) == -1) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        if (PyUnicode_IS_ASCII(o)) {
            *length = PyUnicode_GET_LENGTH(o);
            return PyUnicode_AsUTF8(o);
        } else {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
#else
        return PyUnicode_AsUTF8AndSize(o, length);
#endif
#endif
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (PyInt_Check(x) || PyLong_Check(x))
#else
  if (PyLong_Check(x))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = PyNumber_Long(x);
  }
  #else
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Long(x);
  }
  #endif
#else
  res = PyNumber_Int(x);
#endif
  if (res) {
#if PY_MAJOR_VERSION < 3
    if (!PyInt_Check(res) && !PyLong_Check(res)) {
#else
    if (!PyLong_Check(res)) {
#endif
      PyErr_Format(PyExc_TypeError,
                   "__%.4s__ returned non-%.4s (type %.200s)",
                   name, name, Py_TYPE(res)->tp_name);
      Py_DECREF(res);
      return NULL;
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(x);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
