/* Generated by Cython 0.20.1rc1 on Fri Feb  7 22:07:42 2014 */

#define PY_SSIZE_T_CLEAN
#ifndef CYTHON_USE_PYLONG_INTERNALS
#ifdef PYLONG_BITS_IN_DIGIT
#define CYTHON_USE_PYLONG_INTERNALS 0
#else
#include "pyconfig.h"
#ifdef PYLONG_BITS_IN_DIGIT
#define CYTHON_USE_PYLONG_INTERNALS 1
#else
#define CYTHON_USE_PYLONG_INTERNALS 0
#endif
#endif
#endif
#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 < 0x02040000
    #error Cython requires Python 2.4+.
#else
#define CYTHON_ABI "0_20_1rc1"
#include <stddef.h> /* For offsetof */
#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 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_CPYTHON 0
#else
#define CYTHON_COMPILING_IN_PYPY 0
#define CYTHON_COMPILING_IN_CPYTHON 1
#endif
#if CYTHON_COMPILING_IN_PYPY
#define Py_OptimizeFlag 0
#endif
#if PY_VERSION_HEX < 0x02050000
  typedef int Py_ssize_t;
  #define PY_SSIZE_T_MAX INT_MAX
  #define PY_SSIZE_T_MIN INT_MIN
  #define PY_FORMAT_SIZE_T ""
  #define CYTHON_FORMAT_SSIZE_T ""
  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
  #define PyInt_AsSsize_t(o)   __Pyx_PyInt_As_int(o)
  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \
                                (PyErr_Format(PyExc_TypeError, \
                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
                                 (PyObject*)0))
  #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
                                  !PyComplex_Check(o))
  #define PyIndex_Check __Pyx_PyIndex_Check
  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
  #define __PYX_BUILD_PY_SSIZE_T "i"
#else
  #define __PYX_BUILD_PY_SSIZE_T "n"
  #define CYTHON_FORMAT_SSIZE_T "z"
  #define __Pyx_PyIndex_Check PyIndex_Check
#endif
#if PY_VERSION_HEX < 0x02060000
  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
  #define PyVarObject_HEAD_INIT(type, size) \
          PyObject_HEAD_INIT(type) size,
  #define PyType_Modified(t)
  typedef struct {
     void *buf;
     PyObject *obj;
     Py_ssize_t len;
     Py_ssize_t itemsize;
     int readonly;
     int ndim;
     char *format;
     Py_ssize_t *shape;
     Py_ssize_t *strides;
     Py_ssize_t *suboffsets;
     void *internal;
  } Py_buffer;
  #define PyBUF_SIMPLE 0
  #define PyBUF_WRITABLE 0x0001
  #define PyBUF_FORMAT 0x0004
  #define PyBUF_ND 0x0008
  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
  #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE)
  #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE)
  typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
  typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
#endif
#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
#if PY_VERSION_HEX < 0x02060000
  #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")
#endif
#if PY_MAJOR_VERSION >= 3
  #define Py_TPFLAGS_CHECKTYPES 0
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#if PY_VERSION_HEX < 0x02060000
  #define Py_TPFLAGS_HAVE_VERSION_TAG 0
#endif
#if PY_VERSION_HEX < 0x02060000 && !defined(Py_TPFLAGS_IS_ABSTRACT)
  #define Py_TPFLAGS_IS_ABSTRACT 0
#endif
#if PY_VERSION_HEX < 0x030400a1 && !defined(Py_TPFLAGS_HAVE_FINALIZE)
  #define Py_TPFLAGS_HAVE_FINALIZE 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_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)
#else
  #define CYTHON_PEP393_ENABLED 0
  #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_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]))
#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
#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
  #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_VERSION_HEX < 0x02060000
  #define PyBytesObject                PyStringObject
  #define PyBytes_Type                 PyString_Type
  #define PyBytes_Check                PyString_Check
  #define PyBytes_CheckExact           PyString_CheckExact
  #define PyBytes_FromString           PyString_FromString
  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
  #define PyBytes_FromFormat           PyString_FromFormat
  #define PyBytes_DecodeEscape         PyString_DecodeEscape
  #define PyBytes_AsString             PyString_AsString
  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
  #define PyBytes_Size                 PyString_Size
  #define PyBytes_AS_STRING            PyString_AS_STRING
  #define PyBytes_GET_SIZE             PyString_GET_SIZE
  #define PyBytes_Repr                 PyString_Repr
  #define PyBytes_Concat               PyString_Concat
  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
#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_CheckExact(obj) || PyUnicode_CheckExact(obj) || \
                                         PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#if PY_VERSION_HEX < 0x02060000
  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
#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_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) || (PY_VERSION_HEX >= 0x03010300)
  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
#else
  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
#endif
#if PY_VERSION_HEX < 0x02050000
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
#else
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
#endif
#if PY_VERSION_HEX < 0x02050000
  #define __Pyx_NAMESTR(n) ((char *)(n))
  #define __Pyx_DOCSTR(n)  ((char *)(n))
#else
  #define __Pyx_NAMESTR(n) (n)
  #define __Pyx_DOCSTR(n)  (n)
#endif
#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
#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
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
   a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
   a quiet NaN. */
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif


#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_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif

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

#if defined(WIN32) || defined(MS_WINDOWS)
#define _USE_MATH_DEFINES
#endif
#include <math.h>
#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
typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/

#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_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)))  )
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(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_FromUString(s)  __Pyx_PyObject_FromString((char*)s)
#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((char*)s)
#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((char*)s)
#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((char*)s)
#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((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 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_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(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_COMPILING_IN_CPYTHON
#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 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys = NULL;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    sys = PyImport_ImportModule("sys");
    if (sys == NULL) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    if (default_encoding == NULL) goto bad;
    if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        const char* default_encoding_c = PyBytes_AS_STRING(default_encoding);
        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 == NULL) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (ascii_chars_b == NULL || strncmp(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_XDECREF(sys);
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return 0;
bad:
    Py_XDECREF(sys);
    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 = NULL;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (sys == NULL) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    if (default_encoding == NULL) goto bad;
    default_encoding_c = PyBytes_AS_STRING(default_encoding);
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(sys);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(sys);
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


#ifdef __GNUC__
  /* Test for GCC > 2.95 */
  #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
    #define likely(x)   __builtin_expect(!!(x), 1)
    #define unlikely(x) __builtin_expect(!!(x), 0)
  #else /* __GNUC__ > 2 ... */
    #define likely(x)   (x)
    #define unlikely(x) (x)
  #endif /* __GNUC__ > 2 ... */
#else /* __GNUC__ */
  #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 int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "Parsing.py",
  "Actions.pxd",
  "Scanners.pxd",
  "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;

/* "Cython/Plex/Scanners.pxd":43
 * 
 *     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;

/* "Cython/Compiler/Scanning.pxd":47
 *     #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;
};

/* "Cython/Compiler/Scanning.pxd":48
 *     #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;
};

/* "Cython/Compiler/Scanning.pxd":49
 *     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;
};

/* "Cython/Compiler/Scanning.pxd":52
 *     cdef expect_indent(self)
 *     cdef expect_dedent(self)
 *     cdef expect_newline(self, message = *)             # <<<<<<<<<<<<<<
 */
struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline {
  int __pyx_n;
  PyObject *message;
};
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_bounds;
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_for_iterator;
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;

/* "Cython/Compiler/Parsing.pxd":6
 * from Cython.Compiler.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":10
 * # 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":11
 * 
 * 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":15
 * # 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":20
 * 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":48
 * 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, star_arg, starstar_arg)
 * 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":57
 * 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":64
 * 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":67
 * 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=*)             # <<<<<<<<<<<<<<
 * cdef p_list_maker(PyrexScanner s)
 * cdef p_comp_iter(PyrexScanner s, body)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal {
  int __pyx_n;
  PyObject *kind_override;
};

/* "Cython/Compiler/Parsing.pxd":74
 * 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":75
 * 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":93
 * 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":99
 * 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":109
 * cdef p_while_statement(PyrexScanner s)
 * cdef p_for_statement(PyrexScanner s)
 * cdef dict p_for_bounds(PyrexScanner s, bint allow_testlist = *)             # <<<<<<<<<<<<<<
 * 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;
};

/* "Cython/Compiler/Parsing.pxd":114
 * cdef p_target(PyrexScanner s, terminator)
 * cdef p_for_target(PyrexScanner s)
 * cdef p_for_iterator(PyrexScanner s, bint allow_testlist = *)             # <<<<<<<<<<<<<<
 * 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;
};

/* "Cython/Compiler/Parsing.pxd":121
 * cdef p_with_items(PyrexScanner s)
 * 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":122
 * 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":126
 * 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":127
 * 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, with_doc_only = *)
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list {
  int __pyx_n;
  int first_statement;
};

/* "Cython/Compiler/Parsing.pxd":128
 * 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, 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":129
 * 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, 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;
  PyObject *with_doc_only;
};

/* "Cython/Compiler/Parsing.pxd":131
 * cdef tuple p_suite_with_docstring(PyrexScanner s, ctx, 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":133
 * 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":135
 * 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":136
 * 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":148
 * 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":158
 * 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":161
 *                    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":177
 * cdef p_ctypedef_statement(PyrexScanner s, ctx)
 * cdef p_decorators(PyrexScanner s)
 * cdef p_def_statement(PyrexScanner s, list decorators = *)             # <<<<<<<<<<<<<<
 * 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;
};

/* "Cython/Compiler/Parsing.pxd":178
 * cdef p_decorators(PyrexScanner s)
 * cdef p_def_statement(PyrexScanner s, list decorators = *)
 * 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":179
 * cdef p_def_statement(PyrexScanner s, list decorators = *)
 * 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":3263
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     from types import ListType, TupleType
 *     from Nodes import Node
 */
struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree {
  int __pyx_n;
  PyObject *key;
};

/* "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;
};


/* "Cython/Plex/Scanners.pxd":5
 * 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;
  int input_state;
  PyObject *level;
};

struct __pyx_obj_6Cython_8Compiler_8Scanning_Method {
  PyObject_HEAD
  PyObject *name;
  PyObject *__pyx___name__;
};


/* "Cython/Compiler/Scanning.pxd":9
 *     cdef object __name__
 * 
 * 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;
};


/* "Cython/Compiler/Scanning.pxd":16
 *     cpdef lookup(self, name)
 * 
 * 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;
  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;


/* "Cython/Plex/Scanners.pxd":5
 * 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 *);
  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;


/* "Cython/Compiler/Scanning.pxd":9
 *     cdef object __name__
 * 
 * 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;


/* "Cython/Compiler/Scanning.pxd":16
 *     cpdef lookup(self, name)
 * 
 * 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);
};
static struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *__pyx_vtabptr_6Cython_8Compiler_8Scanning_PyrexScanner;
#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); /*proto*/
  #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 /* CYTHON_REFNANNY */
#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)

#if CYTHON_COMPILING_IN_CPYTHON
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

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

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

static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
    const char* function_name); /*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); /*proto*/

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

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

#include <string.h>

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

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

#if CYTHON_COMPILING_IN_CPYTHON
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

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

static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

#if CYTHON_COMPILING_IN_CPYTHON
#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

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

static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*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);

#if CYTHON_COMPILING_IN_CPYTHON
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

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);

#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);

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
            PyObject* text, Py_ssize_t start, Py_ssize_t stop);

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

static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/

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

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

static PyObject* __Pyx_PyObject_CallMethodTuple(PyObject* obj, PyObject* method_name, PyObject* args) {
    PyObject *method, *result = NULL;
    if (unlikely(!args)) return NULL;
    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_Call(method, args, NULL);
    Py_DECREF(method);
bad:
    Py_DECREF(args);
    return result;
}
#define __Pyx_PyObject_CallMethod3(obj, name, arg1, arg2, arg3) \
    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(3, arg1, arg2, arg3))
#define __Pyx_PyObject_CallMethod2(obj, name, arg1, arg2) \
    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(2, arg1, arg2))
#define __Pyx_PyObject_CallMethod1(obj, name, arg1) \
    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(1, arg1))
#define __Pyx_PyObject_CallMethod0(obj, name) \
    __Pyx_PyObject_CallMethodTuple(obj, name, (Py_INCREF(__pyx_empty_tuple), __pyx_empty_tuple))

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

static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/

static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*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

static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);

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

static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); /*proto*/

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

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

#if PY_MAJOR_VERSION >= 3
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

#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,
                                               CYTHON_UNUSED int is_list, int wraparound);

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

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

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

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);

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

static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

#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;
    PyObject *func_dict;
    PyObject *func_weakreflist;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj; /* No-args super() class cell */
    void *defaults;
    int defaults_pyobjects;
    int flags;
    PyObject *defaults_tuple;   /* Const defaults tuple */
    PyObject *defaults_kwdict;  /* Const kwonly defaults dict */
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations; /* function annotations dict */
} __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);

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

#if PY_VERSION_HEX < 0x02050000
#ifndef PyAnySet_CheckExact
#define PyAnySet_CheckExact(ob) \
    ((ob)->ob_type == &PySet_Type || \
     (ob)->ob_type == &PyFrozenSet_Type)
#define PySet_New(iterable) \
    PyObject_CallFunctionObjArgs((PyObject *)&PySet_Type, (iterable), NULL)
#define Pyx_PyFrozenSet_New(iterable) \
    PyObject_CallFunctionObjArgs((PyObject *)&PyFrozenSet_Type, (iterable), NULL)
#define PySet_Size(anyset) \
    PyObject_Size((anyset))
#define PySet_Contains(anyset, key) \
    PySequence_Contains((anyset), (key))
#define PySet_Pop(set) \
    PyObject_CallMethod((set), (char*)"pop", NULL)
static CYTHON_INLINE int PySet_Clear(PyObject *set) {
    PyObject *ret = PyObject_CallMethod(set, (char*)"clear", NULL);
    if (!ret) return -1;
    Py_DECREF(ret); return 0;
}
static CYTHON_INLINE int PySet_Discard(PyObject *set, PyObject *key) {
    PyObject *ret = PyObject_CallMethod(set, (char*)"discard", (char*)"(O)", key);
    if (!ret) return -1;
    Py_DECREF(ret); return 0;
}
static CYTHON_INLINE int PySet_Add(PyObject *set, PyObject *key) {
    PyObject *ret = PyObject_CallMethod(set, (char*)"add", (char*)"(O)", key);
    if (!ret) return -1;
    Py_DECREF(ret); return 0;
}
#endif /* PyAnySet_CheckExact (<= Py2.4) */
#endif /* < Py2.5  */

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

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

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

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

static int __Pyx_check_binary_version(void);

static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /*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

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

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

typedef struct {
    int code_line;
    PyCodeObject* code_object;
} __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);

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

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


/* 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;

/* 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_BytesLiteral = 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_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_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 *, 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_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 *); /*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 *); /*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_cpp_class_definition(struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *, PyObject *, 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_ord;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_AttributeError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_xrange;
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 char __pyx_k_[] = ",";
static char __pyx_k_L[] = "L";
static char __pyx_k_U[] = "U";
static char __pyx_k_b[] = "b";
static char __pyx_k_c[] = "c";
static char __pyx_k_d[] = "d";
static char __pyx_k_f[] = "f";
static char __pyx_k_r[] = "r";
static char __pyx_k_s[] = "s";
static char __pyx_k_u[] = "u";
static char __pyx_k_IF[] = "IF";
static char __pyx_k_LL[] = "LL";
static char __pyx_k__2[] = "/";
static char __pyx_k__3[] = ":";
static char __pyx_k__6[] = "*";
static char __pyx_k__7[] = "<>";
static char __pyx_k__8[] = "!=";
static char __pyx_k__9[] = "|";
static char __pyx_k_as[] = "as";
static char __pyx_k_by[] = "by";
static char __pyx_k_if[] = "if";
static char __pyx_k_in[] = "in";
static char __pyx_k_is[] = "is";
static char __pyx_k_or[] = "or";
static char __pyx_k_rU[] = "rU";
static char __pyx_k_re[] = "re";
static char __pyx_k_ub[] = "ub";
static char __pyx_k_Ctx[] = "Ctx";
static char __pyx_k_DEF[] = "DEF";
static char __pyx_k_EOF[] = "EOF";
static char __pyx_k_INT[] = "INT";
static char __pyx_k__11[] = "^";
static char __pyx_k__13[] = "&";
static char __pyx_k__15[] = "<<";
static char __pyx_k__16[] = ">>";
static char __pyx_k__18[] = "+";
static char __pyx_k__19[] = "-";
static char __pyx_k__21[] = "%";
static char __pyx_k__22[] = "//";
static char __pyx_k__24[] = "~";
static char __pyx_k__25[] = "<";
static char __pyx_k__27[] = "?";
static char __pyx_k__28[] = ">";
static char __pyx_k__29[] = "(";
static char __pyx_k__30[] = ")";
static char __pyx_k__32[] = "[";
static char __pyx_k__33[] = ".";
static char __pyx_k__34[] = "**";
static char __pyx_k__36[] = "=";
static char __pyx_k__40[] = "]";
static char __pyx_k__44[] = "{";
  static char __pyx_k__45[] = "`";
  static char __pyx_k__48[] = "";
  static char __pyx_k__54[] = "\\";
  static char __pyx_k__55[] = "\n";
static char __pyx_k__58[] = "}";
static char __pyx_k__60[] = "([+*/\\%^\\&|-]|<<|>>|\\*\\*|//)=";
static char __pyx_k__71[] = ";";
static char __pyx_k__95[] = "::";
static char __pyx_k__96[] = "+-*/<=>!%&|([^~,";
static char __pyx_k__97[] = "()";
static char __pyx_k__98[] = "[]";
static char __pyx_k_add[] = "add";
static char __pyx_k_and[] = "and";
static char __pyx_k_api[] = "api";
static char __pyx_k_arg[] = "arg";
static char __pyx_k_ctx[] = "ctx";
static char __pyx_k_def[] = "def";
static char __pyx_k_del[] = "del";
static char __pyx_k_doc[] = "doc";
static char __pyx_k_for[] = "for";
static char __pyx_k_gil[] = "gil";
static char __pyx_k_int[] = "int";
static char __pyx_k_key[] = "key";
static char __pyx_k_lhs[] = "lhs";
static char __pyx_k_new[] = "new";
static char __pyx_k_not[] = "not";
static char __pyx_k_obj[] = "obj";
static char __pyx_k_ord[] = "ord";
static char __pyx_k_pos[] = "pos";
static char __pyx_k_pxd[] = "pxd";
static char __pyx_k_rhs[] = "rhs";
static char __pyx_k_s_2[] = "%s: ";
static char __pyx_k_s_3[] = "%s)\n";
static char __pyx_k_s_4[] = "%s]\n";
static char __pyx_k_s_s[] = "(%s @ %s\n";
static char __pyx_k_tag[] = "tag";
static char __pyx_k_try[] = "try";
static char __pyx_k_ELIF[] = "ELIF";
static char __pyx_k_ELSE[] = "ELSE";
static char __pyx_k_IMAG[] = "IMAG";
static char __pyx_k_NULL[] = "NULL";
static char __pyx_k_Node[] = "Node";
static char __pyx_k_None[] = "None";
static char __pyx_k_True[] = "True";
static char __pyx_k__105[] = "->";
static char __pyx_k__111[] = "  ";
static char __pyx_k__112[] = "[\n";
static char __pyx_k__118[] = "==";
static char __pyx_k__119[] = ">=";
static char __pyx_k__120[] = "<=";
static char __pyx_k__127[] = "++";
static char __pyx_k__128[] = "--";
static char __pyx_k__129[] = "!";
static char __pyx_k_args[] = "args";
static char __pyx_k_axes[] = "axes";
static char __pyx_k_base[] = "base";
static char __pyx_k_bint[] = "bint";
static char __pyx_k_body[] = "body";
static char __pyx_k_call[] = "__call__";
static char __pyx_k_cdef[] = "cdef";
static char __pyx_k_char[] = "char";
static char __pyx_k_cond[] = "cond";
static char __pyx_k_dict[] = "__dict__";
static char __pyx_k_elif[] = "elif";
static char __pyx_k_else[] = "else";
static char __pyx_k_enum[] = "enum";
static char __pyx_k_exec[] = "exec";
static char __pyx_k_expr[] = "expr";
static char __pyx_k_from[] = "from";
static char __pyx_k_init[] = "__init__";
static char __pyx_k_kind[] = "kind";
static char __pyx_k_kwds[] = "kwds";
static char __pyx_k_long[] = "long";
static char __pyx_k_loop[] = "loop";
static char __pyx_k_main[] = "__main__";
static char __pyx_k_mode[] = "mode";
static char __pyx_k_name[] = "name";
static char __pyx_k_node[] = "node";
static char __pyx_k_or_2[] = " or ";
static char __pyx_k_pass[] = "pass";
static char __pyx_k_self[] = "self";
static char __pyx_k_step[] = "step";
static char __pyx_k_stop[] = "stop";
static char __pyx_k_test[] = "test";
static char __pyx_k_type[] = "type";
static char __pyx_k_void[] = "void";
static char __pyx_k_with[] = "with";
static char __pyx_k_CHARS[] = "CHARS";
static char __pyx_k_FLOAT[] = "FLOAT";
static char __pyx_k_False[] = "False";
static char __pyx_k_IDENT[] = "IDENT";
static char __pyx_k_Nodes[] = "Nodes";
static char __pyx_k_Utils[] = "Utils";
static char __pyx_k_bases[] = "bases";
static char __pyx_k_break[] = "break";
static char __pyx_k_bytes[] = "_bytes";
static char __pyx_k_cause[] = "cause";
static char __pyx_k_cdecl[] = "__cdecl";
static char __pyx_k_class[] = "__class__";
static char __pyx_k_close[] = "close";
static char __pyx_k_cname[] = "cname";
static char __pyx_k_const[] = "const";
static char __pyx_k_cpdef[] = "cpdef";
static char __pyx_k_doc_2[] = "__doc__";
static char __pyx_k_empty[] = "empty";
static char __pyx_k_error[] = "error";
static char __pyx_k_fatal[] = "fatal";
static char __pyx_k_float[] = "float";
static char __pyx_k_fused[] = "fused";
static char __pyx_k_group[] = "group";
static char __pyx_k_index[] = "index";
static char __pyx_k_items[] = "items";
static char __pyx_k_level[] = "level";
static char __pyx_k_lower[] = "lower";
static char __pyx_k_match[] = "match";
static char __pyx_k_names[] = "names";
static char __pyx_k_nogil[] = "nogil";
static char __pyx_k_other[] = "other";
static char __pyx_k_print[] = "print";
static char __pyx_k_raise[] = "raise";
static char __pyx_k_range[] = "range";
static char __pyx_k_s_s_2[] = "%s @ %s\n";
static char __pyx_k_s_s_3[] = "%s%s\n";
static char __pyx_k_short[] = "short";
static char __pyx_k_split[] = "split";
static char __pyx_k_start[] = "start";
static char __pyx_k_state[] = "state";
static char __pyx_k_stats[] = "stats";
static char __pyx_k_strip[] = "strip";
static char __pyx_k_types[] = "types";
static char __pyx_k_union[] = "union";
static char __pyx_k_value[] = "value";
static char __pyx_k_while[] = "while";
static char __pyx_k_write[] = "write";
static char __pyx_k_yield[] = "yield";
static char __pyx_k_Cython[] = "Cython";
static char __pyx_k_DEDENT[] = "DEDENT";
static char __pyx_k_ESCAPE[] = "ESCAPE";
static char __pyx_k_Errors[] = "Errors";
static char __pyx_k_Future[] = "Future";
static char __pyx_k_append[] = "append";
static char __pyx_k_assert[] = "assert";
static char __pyx_k_bound1[] = "bound1";
static char __pyx_k_bound2[] = "bound2";
static char __pyx_k_braces[] = "braces";
static char __pyx_k_double[] = "double";
static char __pyx_k_exc_tb[] = "exc_tb";
static char __pyx_k_except[] = "except";
static char __pyx_k_extend[] = "extend";
static char __pyx_k_extern[] = "extern";
static char __pyx_k_future[] = "__future__";
static char __pyx_k_global[] = "global";
static char __pyx_k_import[] = "import";
static char __pyx_k_in_pxd[] = "in_pxd";
static char __pyx_k_inline[] = "inline";
static char __pyx_k_is_not[] = "is_not";
static char __pyx_k_lambda[] = "lambda";
static char __pyx_k_lookup[] = "lookup";
static char __pyx_k_lstrip[] = "lstrip";
static char __pyx_k_module[] = "module";
static char __pyx_k_name_2[] = "__name__";
static char __pyx_k_not_in[] = "not_in";
static char __pyx_k_object[] = "object";
static char __pyx_k_packed[] = "packed";
static char __pyx_k_public[] = "public";
static char __pyx_k_return[] = "return";
static char __pyx_k_signed[] = "signed";
static char __pyx_k_size_t[] = "size_t";
static char __pyx_k_sizeof[] = "sizeof";
static char __pyx_k_stream[] = "stream";
static char __pyx_k_struct[] = "struct";
static char __pyx_k_target[] = "target";
static char __pyx_k_test_2[] = "__test__";
static char __pyx_k_update[] = "update";
static char __pyx_k_xrange[] = "xrange";
static char __pyx_k_Builtin[] = "Builtin";
static char __pyx_k_DefNode[] = "DefNode";
static char __pyx_k_IntNode[] = "IntNode";
static char __pyx_k_NEWLINE[] = "NEWLINE";
static char __pyx_k_NotNode[] = "NotNode";
static char __pyx_k_Options[] = "Options";
static char __pyx_k_Py_UCS4[] = "Py_UCS4";
static char __pyx_k_SetNode[] = "SetNode";
static char __pyx_k_as_name[] = "as_name";
static char __pyx_k_c_class[] = "c_class";
static char __pyx_k_cascade[] = "cascade";
static char __pyx_k_cimport[] = "cimport";
static char __pyx_k_class_2[] = "class";
static char __pyx_k_compile[] = "compile";
static char __pyx_k_complex[] = "complex";
static char __pyx_k_default[] = "default";
static char __pyx_k_finally[] = "finally";
static char __pyx_k_getchar[] = "getchar";
static char __pyx_k_include[] = "include";
static char __pyx_k_is_name[] = "is_name";
static char __pyx_k_is_type[] = "is_type";
static char __pyx_k_kw_only[] = "kw_only";
static char __pyx_k_manager[] = "manager";
static char __pyx_k_operand[] = "operand";
static char __pyx_k_or_none[] = "or_none";
static char __pyx_k_pattern[] = "pattern";
static char __pyx_k_prepare[] = "__prepare__";
static char __pyx_k_private[] = "private";
static char __pyx_k_ssize_t[] = "ssize_t";
static char __pyx_k_stdcall[] = "__stdcall";
static char __pyx_k_unicode[] = "_unicode";
static char __pyx_k_warning[] = "warning";
static char __pyx_k_BoolNode[] = "BoolNode";
static char __pyx_k_CharNode[] = "CharNode";
static char __pyx_k_DictNode[] = "DictNode";
static char __pyx_k_Ellipsis[] = "Ellipsis";
static char __pyx_k_ImagNode[] = "ImagNode";
static char __pyx_k_KeyError[] = "KeyError";
static char __pyx_k_ListNode[] = "ListNode";
static char __pyx_k_ListType[] = "ListType";
static char __pyx_k_NameNode[] = "NameNode";
static char __pyx_k_NoneNode[] = "NoneNode";
static char __pyx_k_NullNode[] = "NullNode";
static char __pyx_k_continue[] = "continue";
static char __pyx_k_cppclass[] = "cppclass";
static char __pyx_k_ctypedef[] = "ctypedef";
static char __pyx_k_division[] = "division";
static char __pyx_k_encoding[] = "encoding";
static char __pyx_k_exc_type[] = "exc_type";
static char __pyx_k_fastcall[] = "__fastcall";
static char __pyx_k_function[] = "function";
static char __pyx_k_import_2[] = "__import__";
static char __pyx_k_iterator[] = "iterator";
static char __pyx_k_key_expr[] = "key_expr";
static char __pyx_k_lhs_list[] = "lhs_list";
static char __pyx_k_longness[] = "longness";
static char __pyx_k_module_2[] = "__module__";
static char __pyx_k_nonempty[] = "nonempty";
static char __pyx_k_nonlocal[] = "nonlocal";
static char __pyx_k_not_none[] = "not_none";
static char __pyx_k_operand1[] = "operand1";
static char __pyx_k_operand2[] = "operand2";
static char __pyx_k_operator[] = "operator";
static char __pyx_k_property[] = "property";
static char __pyx_k_put_back[] = "put_back";
static char __pyx_k_qualname[] = "__qualname__";
static char __pyx_k_readonly[] = "readonly";
static char __pyx_k_sequence[] = "sequence";
static char __pyx_k_set_type[] = "set_type";
static char __pyx_k_star_arg[] = "star_arg";
static char __pyx_k_template[] = "template";
static char __pyx_k_true_val[] = "true_val";
static char __pyx_k_unsigned[] = "unsigned";
static char __pyx_k_with_gil[] = "with_gil";
static char __pyx_k_BytesNode[] = "BytesNode";
static char __pyx_k_DECORATOR[] = "DECORATOR";
static char __pyx_k_ExprNodes[] = "ExprNodes";
static char __pyx_k_FloatNode[] = "FloatNode";
static char __pyx_k_IndexNode[] = "IndexNode";
static char __pyx_k_SliceNode[] = "SliceNode";
static char __pyx_k_TupleNode[] = "TupleNode";
static char __pyx_k_TupleType[] = "TupleType";
static char __pyx_k_annotated[] = "annotated";
static char __pyx_k_arg_tuple[] = "arg_tuple";
static char __pyx_k_attribute[] = "attribute";
static char __pyx_k_base_type[] = "base_type";
static char __pyx_k_cdef_flag[] = "cdef_flag";
static char __pyx_k_condition[] = "condition";
static char __pyx_k_cpp_class[] = "cpp_class";
static char __pyx_k_decorator[] = "decorator";
static char __pyx_k_dict_type[] = "dict_type";
static char __pyx_k_dimension[] = "dimension";
static char __pyx_k_exc_value[] = "exc_value";
static char __pyx_k_false_val[] = "false_val";
static char __pyx_k_in_pyfunc[] = "in_pyfunc";
static char __pyx_k_list_type[] = "list_type";
static char __pyx_k_metaclass[] = "__metaclass__";
static char __pyx_k_modifiers[] = "modifiers";
static char __pyx_k_name_list[] = "name_list";
static char __pyx_k_namespace[] = "namespace";
static char __pyx_k_ptrdiff_t[] = "ptrdiff_t";
static char __pyx_k_relation1[] = "relation1";
static char __pyx_k_relation2[] = "relation2";
static char __pyx_k_self_flag[] = "self_flag";
static char __pyx_k_templates[] = "templates";
static char __pyx_k_typecheck[] = "typecheck";
static char __pyx_k_unop_node[] = "unop_node";
static char __pyx_k_Ctx___call[] = "Ctx.__call__";
static char __pyx_k_Ctx___init[] = "Ctx.__init__";
static char __pyx_k_END_STRING[] = "END_STRING";
static char __pyx_k_GlobalNode[] = "GlobalNode";
static char __pyx_k_IfStatNode[] = "IfStatNode";
static char __pyx_k_ImportNode[] = "ImportNode";
static char __pyx_k_LambdaNode[] = "LambdaNode";
static char __pyx_k_ModuleNode[] = "ModuleNode";
static char __pyx_k_Py_UNICODE[] = "Py_UNICODE";
static char __pyx_k_Py_ssize_t[] = "Py_ssize_t";
static char __pyx_k_StringNode[] = "StringNode";
static char __pyx_k_ValueError[] = "ValueError";
static char __pyx_k_annotation[] = "annotation";
static char __pyx_k_assignable[] = "assignable";
static char __pyx_k_attributes[] = "attributes";
static char __pyx_k_binop_node[] = "binop_node";
static char __pyx_k_class_name[] = "class_name";
static char __pyx_k_declarator[] = "declarator";
static char __pyx_k_decorators[] = "decorators";
static char __pyx_k_getstrings[] = "getstrings";
static char __pyx_k_if_clauses[] = "if_clauses";
static char __pyx_k_is_starred[] = "is_starred";
static char __pyx_k_join_bytes[] = "join_bytes";
static char __pyx_k_module_pxd[] = "module_pxd";
static char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static char __pyx_k_value_expr[] = "value_expr";
static char __pyx_k_visibility[] = "visibility";
static char __pyx_k_AsTupleNode[] = "AsTupleNode";
static char __pyx_k_CVarDefNode[] = "CVarDefNode";
static char __pyx_k_DelStatNode[] = "DelStatNode";
static char __pyx_k_ForStatNode[] = "ForStatNode";
static char __pyx_k_GILStatNode[] = "GILStatNode";
static char __pyx_k_NewExprNode[] = "NewExprNode";
static char __pyx_k_UnicodeNode[] = "UnicodeNode";
static char __pyx_k_Unmatched_s[] = "Unmatched %s";
static char __pyx_k_bytes_value[] = "bytes_value";
static char __pyx_k_c_class_pxd[] = "c_class_pxd";
static char __pyx_k_commentline[] = "commentline";
static char __pyx_k_declarators[] = "declarators";
static char __pyx_k_else_clause[] = "else_clause";
static char __pyx_k_has_varargs[] = "has_varargs";
static char __pyx_k_is_self_arg[] = "is_self_arg";
static char __pyx_k_module_name[] = "module_name";
static char __pyx_k_module_path[] = "module_path";
static char __pyx_k_overridable[] = "overridable";
static char __pyx_k_result_expr[] = "result_expr";
static char __pyx_k_unicodedata[] = "unicodedata";
static char __pyx_k_BEGIN_STRING[] = "BEGIN_STRING";
static char __pyx_k_BytesLiteral[] = "BytesLiteral";
static char __pyx_k_CArgDeclNode[] = "CArgDeclNode";
static char __pyx_k_CEnumDefNode[] = "CEnumDefNode";
static char __pyx_k_CFuncDefNode[] = "CFuncDefNode";
static char __pyx_k_CTypeDefNode[] = "CTypeDefNode";
static char __pyx_k_CondExprNode[] = "CondExprNode";
static char __pyx_k_CppClassNode[] = "CppClassNode";
static char __pyx_k_DictItemNode[] = "DictItemNode";
static char __pyx_k_EllipsisNode[] = "EllipsisNode";
static char __pyx_k_ExecStatNode[] = "ExecStatNode";
static char __pyx_k_ExprStatNode[] = "ExprStatNode";
static char __pyx_k_IfClauseNode[] = "IfClauseNode";
static char __pyx_k_IteratorNode[] = "IteratorNode";
static char __pyx_k_NonlocalNode[] = "NonlocalNode";
static char __pyx_k_PassStatNode[] = "PassStatNode";
static char __pyx_k_PropertyNode[] = "PropertyNode";
static char __pyx_k_PyrexScanner[] = "PyrexScanner";
static char __pyx_k_StatListNode[] = "StatListNode";
static char __pyx_k_TypecastNode[] = "TypecastNode";
static char __pyx_k_Unknown_type[] = "Unknown type";
static char __pyx_k_WithStatNode[] = "WithStatNode";
static char __pyx_k_base_classes[] = "base_classes";
static char __pyx_k_cmethod_flag[] = "cmethod_flag";
static char __pyx_k_include_file[] = "include_file";
static char __pyx_k_is_c_literal[] = "is_c_literal";
static char __pyx_k_is_except_as[] = "is_except_as";
static char __pyx_k_keyword_args[] = "keyword_args";
static char __pyx_k_not_a_chance[] = "not a chance";
static char __pyx_k_p_c_arg_list[] = "p_c_arg_list";
static char __pyx_k_starstar_arg[] = "starstar_arg";
static char __pyx_k_truedivision[] = "truedivision";
static char __pyx_k_typedef_flag[] = "typedef_flag";
static char __pyx_k_typeobj_name[] = "typeobj_name";
static char __pyx_k_AmpersandNode[] = "AmpersandNode";
static char __pyx_k_AttributeNode[] = "AttributeNode";
static char __pyx_k_BackquoteNode[] = "BackquoteNode";
static char __pyx_k_BreakStatNode[] = "BreakStatNode";
static char __pyx_k_CClassDefNode[] = "CClassDefNode";
static char __pyx_k_DecoratorNode[] = "DecoratorNode";
static char __pyx_k_EncodedString[] = "EncodedString";
static char __pyx_k_Expected_None[] = "Expected 'None'";
static char __pyx_k_FusedTypeNode[] = "FusedTypeNode";
static char __pyx_k_PrintStatNode[] = "PrintStatNode";
static char __pyx_k_PyArgDeclNode[] = "PyArgDeclNode";
static char __pyx_k_RaiseStatNode[] = "RaiseStatNode";
static char __pyx_k_SizeofVarNode[] = "SizeofVarNode";
static char __pyx_k_WhileStatNode[] = "WhileStatNode";
static char __pyx_k_YieldExprNode[] = "YieldExprNode";
static char __pyx_k_p_c_base_type[] = "p_c_base_type";
static char __pyx_k_unicode_value[] = "unicode_value";
static char __pyx_k_AssertStatNode[] = "AssertStatNode";
static char __pyx_k_AttributeError[] = "AttributeError";
static char __pyx_k_CConstTypeNode[] = "CConstTypeNode";
static char __pyx_k_CDefExternNode[] = "CDefExternNode";
static char __pyx_k_PrimaryCmpNode[] = "PrimaryCmpNode";
static char __pyx_k_PyClassDefNode[] = "PyClassDefNode";
static char __pyx_k_ReturnStatNode[] = "ReturnStatNode";
static char __pyx_k_SimpleCallNode[] = "SimpleCallNode";
static char __pyx_k_SizeofTypeNode[] = "SizeofTypeNode";
static char __pyx_k_SliceIndexNode[] = "SliceIndexNode";
static char __pyx_k_StringEncoding[] = "StringEncoding";
static char __pyx_k_append_charval[] = "append_charval";
static char __pyx_k_append_newline[] = "append_newline";
static char __pyx_k_append_uescape[] = "append_uescape";
static char __pyx_k_base_type_node[] = "base_type_node";
static char __pyx_k_except_clauses[] = "except_clauses";
static char __pyx_k_finally_clause[] = "finally_clause";
static char __pyx_k_ignore_unknown[] = "ignore_unknown";
static char __pyx_k_imported_names[] = "imported_names";
static char __pyx_k_invalid_syntax[] = "invalid syntax";
static char __pyx_k_language_level[] = "language_level";
static char __pyx_k_objstruct_name[] = "objstruct_name";
static char __pyx_k_p_c_declarator[] = "p_c_declarator";
static char __pyx_k_parse_comments[] = "parse_comments";
static char __pyx_k_CImportStatNode[] = "CImportStatNode";
static char __pyx_k_CascadedCmpNode[] = "CascadedCmpNode";
static char __pyx_k_CythonArrayNode[] = "CythonArrayNode";
static char __pyx_k_Expected_one_of[] = "Expected one of '<', '<=', '>' '>='";
static char __pyx_k_GeneralCallNode[] = "GeneralCallNode";
static char __pyx_k_KeywordArgsNode[] = "KeywordArgsNode";
static char __pyx_k_ReraiseStatNode[] = "ReraiseStatNode";
static char __pyx_k_base_class_name[] = "base_class_name";
static char __pyx_k_exception_check[] = "exception_check";
static char __pyx_k_exception_value[] = "exception_value";
static char __pyx_k_has_local_scope[] = "has_local_scope";
static char __pyx_k_is_basic_c_type[] = "is_basic_c_type";
static char __pyx_k_is_const_method[] = "is_const_method";
static char __pyx_k_key_value_pairs[] = "key_value_pairs";
static char __pyx_k_make_slice_node[] = "make_slice_node";
static char __pyx_k_positional_args[] = "positional_args";
static char __pyx_k_source_encoding[] = "source_encoding";
static char __pyx_k_CEnumDefItemNode[] = "CEnumDefItemNode";
static char __pyx_k_ContinueStatNode[] = "ContinueStatNode";
static char __pyx_k_Empty_declarator[] = "Empty declarator";
static char __pyx_k_ExceptClauseNode[] = "ExceptClauseNode";
static char __pyx_k_full_module_name[] = "full_module_name";
static char __pyx_k_open_source_file[] = "open_source_file";
static char __pyx_k_s_cython_s_s_w_s[] = "^#\\s*cython\\s*:\\s*((\\w|[.])+\\s*=.*)$";
static char __pyx_k_unicode_literals[] = "unicode_literals";
static char __pyx_k_ComprehensionNode[] = "ComprehensionNode";
static char __pyx_k_StarredTargetNode[] = "StarredTargetNode";
static char __pyx_k_StrLiteralBuilder[] = "StrLiteralBuilder";
static char __pyx_k_TemplatedTypeNode[] = "TemplatedTypeNode";
static char __pyx_k_TryExceptStatNode[] = "TryExceptStatNode";
static char __pyx_k_YieldFromExprNode[] = "YieldFromExprNode";
static char __pyx_k_base_class_module[] = "base_class_module";
static char __pyx_k_find_include_file[] = "find_include_file";
static char __pyx_k_future_directives[] = "future_directives";
static char __pyx_k_is_string_literal[] = "is_string_literal";
static char __pyx_k_CPtrDeclaratorNode[] = "CPtrDeclaratorNode";
static char __pyx_k_Expected_a_newline[] = "Expected a newline";
static char __pyx_k_FromImportStatNode[] = "FromImportStatNode";
static char __pyx_k_TryFinallyStatNode[] = "TryFinallyStatNode";
static char __pyx_k_calling_convention[] = "calling_convention";
static char __pyx_k_compile_time_value[] = "compile_time_value";
static char __pyx_k_directive_comments[] = "directive_comments";
static char __pyx_k_set_language_level[] = "set_language_level";
static char __pyx_k_BytesLiteralBuilder[] = "BytesLiteralBuilder";
static char __pyx_k_CFuncDeclaratorNode[] = "CFuncDeclaratorNode";
static char __pyx_k_CNameDeclaratorNode[] = "CNameDeclaratorNode";
static char __pyx_k_CNestedBaseTypeNode[] = "CNestedBaseTypeNode";
static char __pyx_k_CSimpleBaseTypeNode[] = "CSimpleBaseTypeNode";
static char __pyx_k_FromCImportStatNode[] = "FromCImportStatNode";
static char __pyx_k_force_py3_semantics[] = "force_py3_semantics";
static char __pyx_k_CArrayDeclaratorNode[] = "CArrayDeclaratorNode";
static char __pyx_k_CComplexBaseTypeNode[] = "CComplexBaseTypeNode";
static char __pyx_k_CConstDeclaratorNode[] = "CConstDeclaratorNode";
static char __pyx_k_FileSourceDescriptor[] = "FileSourceDescriptor";
static char __pyx_k_IdentifierStringNode[] = "IdentifierStringNode";
static char __pyx_k_Invalid_hex_escape_s[] = "Invalid hex escape '%s'";
static char __pyx_k_SingleAssignmentNode[] = "SingleAssignmentNode";
static char __pyx_k_nonempty_declarators[] = "nonempty_declarators";
static char __pyx_k_parse_directive_list[] = "parse_directive_list";
static char __pyx_k_CStructOrUnionDefNode[] = "CStructOrUnionDefNode";
static char __pyx_k_InPlaceAssignmentNode[] = "InPlaceAssignmentNode";
static char __pyx_k_UnicodeLiteralBuilder[] = "UnicodeLiteralBuilder";
static char __pyx_k_CascadedAssignmentNode[] = "CascadedAssignmentNode";
static char __pyx_k_Expected_an_identifier[] = "Expected an identifier";
static char __pyx_k_Need_at_least_one_type[] = "Need at least one type";
static char __pyx_k_Syntax_error_in_string[] = "Syntax error in string";
static char __pyx_k_return_type_annotation[] = "return_type_annotation";
static char __pyx_k_ComprehensionAppendNode[] = "ComprehensionAppendNode";
static char __pyx_k_Cython_Compiler_Parsing[] = "Cython.Compiler.Parsing";
static char __pyx_k_Expected_object_or_type[] = "Expected 'object' or 'type'";
static char __pyx_k_GeneratorExpressionNode[] = "GeneratorExpressionNode";
static char __pyx_k_MemoryViewSliceTypeNode[] = "MemoryViewSliceTypeNode";
static char __pyx_k_Unclosed_string_literal[] = "Unclosed string literal";
static char __pyx_k_CReferenceDeclaratorNode[] = "CReferenceDeclaratorNode";
static char __pyx_k_Cython_Compiler_Scanning[] = "Cython.Compiler.Scanning";
static char __pyx_k_Invalid_unicode_escape_s[] = "Invalid unicode escape '%s'";
static char __pyx_k_Cannot_combine_api_with_s[] = "Cannot combine 'api' with '%s'";
static char __pyx_k_char_from_escape_sequence[] = "char_from_escape_sequence";
static char __pyx_k_Declarator_should_be_empty[] = "Declarator should be empty";
static char __pyx_k_Expected_except_or_finally[] = "Expected 'except' or 'finally'";
static char __pyx_k_Expected_import_or_cimport[] = "Expected 'import' or 'cimport'";
static char __pyx_k_Invalid_class_visibility_s[] = "Invalid class visibility '%s'";
static char __pyx_k_Syntax_error_in_doc_string[] = "Syntax error in doc string";
static char __pyx_k_calling_convention_allowed[] = "calling_convention_allowed";
static char __pyx_k_decorator_not_allowed_here[] = "decorator not allowed here";
static char __pyx_k_DictComprehensionAppendNode[] = "DictComprehensionAppendNode";
static char __pyx_k_allow_struct_enum_decorator[] = "allow_struct_enum_decorator";
static char __pyx_k_invalid_character_literal_r[] = "invalid character literal: %r";
static char __pyx_k_Syntax_error_in_declarations[] = "Syntax error in declarations";
static char __pyx_k_Expected_an_identifier_before[] = "Expected an identifier before '='";
static char __pyx_k_Syntax_error_in_statement_s_s[] = "Syntax error in statement [%s,%s]";
static char __pyx_k_Expected_an_identifier_found_s[] = "Expected an identifier, found '%s'";
static char __pyx_k_Syntax_error_in_enum_item_list[] = "Syntax error in enum item list";
static char __pyx_k_def_statement_not_allowed_here[] = "def statement not allowed here";
static char __pyx_k_Cannot_concatenate_char_literal[] = "Cannot concatenate char literal with another string or char literal";
static char __pyx_k_Decorators_can_only_be_followed[] = "Decorators can only be followed by functions or classes";
static char __pyx_k_Module_name_required_for_extern[] = "Module name required for 'extern' C class";
static char __pyx_k_Python_3_requires_docstrings_to[] = "Python 3 requires docstrings to be unicode strings";
static char __pyx_k_Relation_directions_in_for_from[] = "Relation directions in for-from do not match";
static char __pyx_k_Syntax_error_in_Python_function[] = "Syntax error in Python function argument list";
static char __pyx_k_Syntax_error_in_struct_or_union[] = "Syntax error in struct or union definition";
static char __pyx_k_Users_robertwb_sage_cython_cyth[] = "/Users/robertwb/sage/cython/cython-release/Cython/Compiler/Parsing.py";
static char __pyx_k_Variable_name_in_for_from_range[] = "Variable name in for-from range does not match target";
static char __pyx_k_api_not_allowed_with_this_state[] = "'api' not allowed with this statement";
static char __pyx_k_cdef_statement_not_allowed_here[] = "cdef statement not allowed here";
static char __pyx_k_expected_tuple_of_length_2_or_3[] = "expected tuple of length 2 or 3, got length %d";
static char __pyx_k_future_feature_s_is_not_defined[] = "future feature %s is not defined";
static char __pyx_k_s_None_only_allowed_in_Python_f[] = "'%s None' only allowed in Python functions";
static char __pyx_k_s_on_something_that_is_not_a_fu[] = "%s on something that is not a function";
static char __pyx_k_yield_from_requires_a_source_ar[] = "'yield from' requires a source argument";
static char __pyx_k_An_axis_specification_in_memoryv[] = "An axis specification in memoryview declaration does not have a ':'.";
static char __pyx_k_Argument_expansion_not_allowed_h[] = "Argument expansion not allowed here.";
static char __pyx_k_C_class_may_only_have_one_base_c[] = "C class may only have one base class";
static char __pyx_k_C_function_definition_not_allowe[] = "C function definition not allowed here";
static char __pyx_k_C_struct_union_enum_cannot_be_de[] = "C struct/union/enum cannot be declared cpdef";
static char __pyx_k_C_struct_union_enum_definition_n[] = "C struct/union/enum definition not allowed here";
static char __pyx_k_Cannot_mix_string_literals_of_di[] = "Cannot mix string literals of different types, expected %s'', got %s''";
static char __pyx_k_Conflicting_visibility_options_s[] = "Conflicting visibility options '%s' and '%s'";
static char __pyx_k_Executable_statement_not_allowed[] = "Executable statement not allowed here";
static char __pyx_k_Expected_a_newline_after_decorat[] = "Expected a newline after decorator";
static char __pyx_k_Expected_an_identifier_or_litera[] = "Expected an identifier or literal";
static char __pyx_k_Extension_type_definition_not_al[] = "Extension type definition not allowed here";
static char __pyx_k_Extension_types_cannot_be_declar[] = "Extension types cannot be declared cpdef";
static char __pyx_k_Fused_type_definition_not_allowe[] = "Fused type definition not allowed here";
static char __pyx_k_Illegal_operand_for_inplace_oper[] = "Illegal operand for inplace operation.";
static char __pyx_k_Invalid_type_for_compile_time_co[] = "Invalid type for compile-time constant: %r (type %s)";
static char __pyx_k_Name_options_not_allowed_for_C_c[] = "Name options not allowed for C++ class";
static char __pyx_k_Name_options_only_allowed_for_pu[] = "Name options only allowed for 'public', 'api', or 'extern' C class";
static char __pyx_k_Non_keyword_arg_following_keywor[] = "Non-keyword arg following keyword arg";
static char __pyx_k_Non_keyword_arg_following_star_a[] = "Non-keyword arg following star-arg";
static char __pyx_k_Object_struct_name_specification[] = "Object struct name specification required for 'public' C class";
static char __pyx_k_Overloading_operator_s_not_yet_s[] = "Overloading operator '%s' not yet supported.";
static char __pyx_k_Python_function_cannot_be_declar[] = "Python function cannot be declared nogil";
static char __pyx_k_Qualified_class_name_not_allowed[] = "Qualified class name not allowed C++ class";
static char __pyx_k_Qualified_class_name_only_allowe[] = "Qualified class name only allowed for 'extern' C class";
static char __pyx_k_Relative_cimport_is_not_supporte[] = "Relative cimport is not supported yet";
static char __pyx_k_Syntax_error_in_C_class_definiti[] = "Syntax error in C class definition";
static char __pyx_k_Syntax_error_in_C_variable_decla[] = "Syntax error in C variable declaration";
static char __pyx_k_Syntax_error_in_ctypedef_stateme[] = "Syntax error in ctypedef statement";
static char __pyx_k_Syntax_error_in_include_statemen[] = "Syntax error in include statement";
static char __pyx_k_Syntax_error_in_simple_statement[] = "Syntax error in simple statement list";
static char __pyx_k_Syntax_error_in_template_functio[] = "Syntax error in template function declaration";
static char __pyx_k_Target_of_for_from_statement_mus[] = "Target of for-from statement must be a variable name";
static char __pyx_k_Type_object_name_specification_n[] = "Type object name specification not allowed for 'extern' C class";
static char __pyx_k_Type_object_name_specification_r[] = "Type object name specification required for 'public' C class";
static char __pyx_k_Unexpected_token_r_r_in_string_l[] = "Unexpected token %r:%r in string literal";
static char __pyx_k_Unknown_Unicode_character_name_s[] = "Unknown Unicode character name %s";
static 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 char __pyx_k_bytes_can_only_contain_ASCII_lit[] = "bytes can only contain ASCII literal characters.";
static char __pyx_k_cdef_blocks_cannot_be_declared_c[] = "cdef blocks cannot be declared cpdef";
static char __pyx_k_cdef_extern_blocks_cannot_be_dec[] = "cdef extern blocks cannot be declared cpdef";
static char __pyx_k_class_definition_not_allowed_her[] = "class definition not allowed here";
static char __pyx_k_ctypedef_statement_not_allowed_h[] = "ctypedef statement not allowed here";
static char __pyx_k_default_values_cannot_be_specifi[] = "default values cannot be specified in pxd files, use ? or *";
static char __pyx_k_from___future___imports_must_occ[] = "from __future__ imports must occur at the beginning of the file";
static char __pyx_k_illegal_integer_literal_syntax_i[] = "illegal integer literal syntax in Python source file";
static char __pyx_k_include_statement_not_allowed_he[] = "include statement not allowed here";
static char __pyx_k_internal_parser_configuration_er[] = "internal parser configuration error";
static char __pyx_k_only_one_star_arg_parameter_allo[] = "only one star-arg parameter allowed";
static char __pyx_k_tuple_variant_of_exec_does_not_s[] = "tuple variant of exec does not support additional 'in' arguments";
static char __pyx_k_Object_struct_name_specification_2[] = "Object struct name specification required for 'api' C class";
static char __pyx_k_Syntax_error_in_C_class_definiti_2[] = "Syntax error in C++ class definition";
static char __pyx_k_Type_object_name_specification_r_2[] = "Type object name specification required for 'api' C class";
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_AttributeError;
static PyObject *__pyx_n_s_AttributeNode;
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_BytesLiteral;
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_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_enum_cannot_be_de;
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_Cython;
static PyObject *__pyx_n_s_CythonArrayNode;
static PyObject *__pyx_n_s_Cython_Compiler_Parsing;
static PyObject *__pyx_n_s_Cython_Compiler_Scanning;
static PyObject *__pyx_n_u_DECORATOR;
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_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_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_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_KeyError;
static PyObject *__pyx_n_s_KeywordArgsNode;
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_ListType;
static PyObject *__pyx_n_s_MemoryViewSliceTypeNode;
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_kp_u_Non_keyword_arg_following_star_a;
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_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_kp_u_Relative_cimport_is_not_supporte;
static PyObject *__pyx_n_s_ReraiseStatNode;
static PyObject *__pyx_n_s_ReturnStatNode;
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_StarredTargetNode;
static PyObject *__pyx_n_s_StatListNode;
static PyObject *__pyx_n_s_StrLiteralBuilder;
static PyObject *__pyx_n_s_StringEncoding;
static PyObject *__pyx_n_s_StringNode;
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_n_s_TupleType;
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_kp_s_Users_robertwb_sage_cython_cyth;
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__105;
static PyObject *__pyx_kp_u__11;
static PyObject *__pyx_kp_u__111;
static PyObject *__pyx_kp_u__112;
static PyObject *__pyx_kp_u__118;
static PyObject *__pyx_kp_u__119;
static PyObject *__pyx_kp_u__120;
static PyObject *__pyx_kp_u__127;
static PyObject *__pyx_kp_u__128;
static PyObject *__pyx_kp_u__129;
static PyObject *__pyx_kp_u__13;
static PyObject *__pyx_kp_u__15;
static PyObject *__pyx_kp_u__16;
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__24;
static PyObject *__pyx_kp_u__25;
static PyObject *__pyx_kp_u__27;
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__32;
static PyObject *__pyx_kp_u__33;
static PyObject *__pyx_kp_u__34;
static PyObject *__pyx_kp_u__36;
static PyObject *__pyx_kp_u__40;
static PyObject *__pyx_kp_u__44;
static PyObject *__pyx_kp_u__45;
static PyObject *__pyx_kp_u__48;
static PyObject *__pyx_kp_u__54;
static PyObject *__pyx_kp_u__55;
static PyObject *__pyx_kp_u__58;
static PyObject *__pyx_kp_u__6;
static PyObject *__pyx_kp_u__60;
static PyObject *__pyx_kp_u__7;
static PyObject *__pyx_kp_u__71;
static PyObject *__pyx_kp_u__8;
static PyObject *__pyx_kp_u__9;
static PyObject *__pyx_kp_u__95;
static PyObject *__pyx_kp_u__96;
static PyObject *__pyx_kp_u__97;
static PyObject *__pyx_kp_u__98;
static PyObject *__pyx_kp_u_a_starred_assignment_target_must;
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_assert;
static PyObject *__pyx_n_s_assignable;
static PyObject *__pyx_n_s_attribute;
static PyObject *__pyx_n_s_attributes;
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_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_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_close;
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_cond;
static PyObject *__pyx_n_s_condition;
static PyObject *__pyx_n_u_const;
static PyObject *__pyx_n_u_continue;
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_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_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_n_s_encoding;
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_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_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_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_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_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_u_inline;
static PyObject *__pyx_n_u_int;
static PyObject *__pyx_kp_u_internal_parser_configuration_er;
static PyObject *__pyx_kp_u_invalid_character_literal_r;
static PyObject *__pyx_kp_u_invalid_syntax;
static PyObject *__pyx_n_u_is;
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_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_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_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_n_s_mode;
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_kp_u_only_one_star_arg_parameter_allo;
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_s_ord;
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_packed;
static PyObject *__pyx_n_u_packed;
static PyObject *__pyx_n_s_parse_comments;
static PyObject *__pyx_n_s_parse_directive_list;
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_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_rU;
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_relation1;
static PyObject *__pyx_n_s_relation2;
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_s;
static PyObject *__pyx_kp_u_s_2;
static PyObject *__pyx_kp_u_s_3;
static PyObject *__pyx_kp_u_s_4;
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_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_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_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_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_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_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_n_s_write;
static PyObject *__pyx_n_s_xrange;
static PyObject *__pyx_n_u_yield;
static PyObject *__pyx_kp_u_yield_from_requires_a_source_ar;
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__83;
static PyObject *__pyx_k__93;
static PyObject *__pyx_k__99;
static PyObject *__pyx_k__108;
static PyObject *__pyx_k__110;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__5;
static PyObject *__pyx_slice__46;
static PyObject *__pyx_slice__50;
static PyObject *__pyx_slice__51;
static PyObject *__pyx_slice__52;
static PyObject *__pyx_slice__61;
static PyObject *__pyx_slice__90;
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__23;
static PyObject *__pyx_tuple__26;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__37;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__43;
static PyObject *__pyx_tuple__47;
static PyObject *__pyx_tuple__49;
static PyObject *__pyx_tuple__53;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__57;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__62;
static PyObject *__pyx_tuple__63;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__65;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__67;
static PyObject *__pyx_tuple__68;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__72;
static PyObject *__pyx_tuple__73;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__75;
static PyObject *__pyx_tuple__76;
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__84;
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__91;
static PyObject *__pyx_tuple__92;
static PyObject *__pyx_tuple__94;
static PyObject *__pyx_slice__104;
static PyObject *__pyx_tuple__100;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__102;
static PyObject *__pyx_tuple__103;
static PyObject *__pyx_tuple__106;
static PyObject *__pyx_tuple__107;
static PyObject *__pyx_tuple__109;
static PyObject *__pyx_tuple__113;
static PyObject *__pyx_tuple__114;
static PyObject *__pyx_tuple__116;
static PyObject *__pyx_tuple__121;
static PyObject *__pyx_tuple__122;
static PyObject *__pyx_tuple__123;
static PyObject *__pyx_tuple__124;
static PyObject *__pyx_tuple__125;
static PyObject *__pyx_tuple__126;
static PyObject *__pyx_tuple__130;
static PyObject *__pyx_codeobj__115;
static PyObject *__pyx_codeobj__117;

/* "Cython/Compiler/Parsing.py":43
 *     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__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_1__init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 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_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "Cython/Compiler/Parsing.py":44
 * 
 *     def __init__(self, **kwds):
 *         self.__dict__.update(kwds)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, **kwds):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_kwds);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kwds);
  __Pyx_GIVEREF(__pyx_v_kwds);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __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;

  /* "Cython/Compiler/Parsing.py":43
 *     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_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":46
 *         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__ = {__Pyx_NAMESTR("__call__"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_3Ctx_3__call__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 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_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 0);

  /* "Cython/Compiler/Parsing.py":47
 * 
 *     def __call__(self, **kwds):
 *         ctx = Ctx()             # <<<<<<<<<<<<<<
 *         d = ctx.__dict__
 *         d.update(self.__dict__)
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ctx = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":48
 *     def __call__(self, **kwds):
 *         ctx = Ctx()
 *         d = ctx.__dict__             # <<<<<<<<<<<<<<
 *         d.update(self.__dict__)
 *         d.update(kwds)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_dict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_d = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":49
 *         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_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":50
 *         d = ctx.__dict__
 *         d.update(self.__dict__)
 *         d.update(kwds)             # <<<<<<<<<<<<<<
 *         return ctx
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_kwds);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_kwds);
  __Pyx_GIVEREF(__pyx_v_kwds);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __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_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":51
 *         d.update(self.__dict__)
 *         d.update(kwds)
 *         return ctx             # <<<<<<<<<<<<<<
 * 
 * def p_ident(s, message = "Expected an identifier"):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ctx);
  __pyx_r = __pyx_v_ctx;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":46
 *         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_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":53
 *         return ctx
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":54
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":55
 * 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":56
 *     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_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":57
 *         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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":59
 *         return name
 *     else:
 *         s.error(message)             # <<<<<<<<<<<<<<
 * 
 * def p_ident_list(s):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_message);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_message);
    __Pyx_GIVEREF(__pyx_v_message);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __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":53
 *         return ctx
 * 
 * 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_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":61
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_ident_list", 0);

  /* "Cython/Compiler/Parsing.py":62
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":63
 * 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_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":64
 *     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_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":65
 *     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_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":66
 *         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_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

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

    /* "Cython/Compiler/Parsing.py":68
 *         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_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":69
 *             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":61
 *         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":77
 * #------------------------------------------
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_binop_operator", 0);

  /* "Cython/Compiler/Parsing.py":78
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":79
 * 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":80
 *     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_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":81
 *     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_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_op);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_op);
  __Pyx_GIVEREF(__pyx_v_op);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":77
 * #------------------------------------------
 * 
 * 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":83
 *     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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_binop_expr", 0);

  /* "Cython/Compiler/Parsing.py":84
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":85
 * 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_Contains(__pyx_v_s->sy, __pyx_v_ops, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":86
 *     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_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(__pyx_t_1 != Py_None)) {
      PyObject* sequence = __pyx_t_1;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __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":87
 *     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_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __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":88
 *         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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_v_op);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_op);
    __Pyx_GIVEREF(__pyx_v_op);
    __Pyx_INCREF(__pyx_v_n1);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_n1);
    __Pyx_GIVEREF(__pyx_v_n1);
    __Pyx_INCREF(__pyx_v_n2);
    PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_v_n2);
    __Pyx_GIVEREF(__pyx_v_n2);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __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_SET(__pyx_v_n1, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":89
 *         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_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":90
 *         n1 = ExprNodes.binop_node(pos, op, n1, n2)
 *         if op == '/':
 *             if Future.division in s.context.future_directives:             # <<<<<<<<<<<<<<
 *                 n1.truedivision = True
 *             else:
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_n_s_division); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_t_4, __pyx_t_5, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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":91
 *         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_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L6;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":93
 *                 n1.truedivision = True
 *             else:
 *                 n1.truedivision = None # unknown             # <<<<<<<<<<<<<<
 *     return n1
 * 
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_n1, __pyx_n_s_truedivision, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_L6:;
      goto __pyx_L5;
    }
    __pyx_L5:;
  }

  /* "Cython/Compiler/Parsing.py":94
 *             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":83
 *     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_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":98
 * #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 *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":100
 * 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_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":101
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":102
 *     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_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":103
 *     s.next()
 *     if s.sy == ':':
 *         args = []             # <<<<<<<<<<<<<<
 *         star_arg = starstar_arg = None
 *     else:
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_args = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":104
 *     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;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":106
 *         star_arg = starstar_arg = None
 *     else:
 *         args, star_arg, starstar_arg = p_varargslist(             # <<<<<<<<<<<<<<
 *             s, terminator=':', annotated=False)
 *     s.expect(':')
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L5_unpacking_done:;
    }
    __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":108
 *         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_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":109
 *             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":110
 *     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_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":112
 *         expr = p_test(s)
 *     else:
 *         expr = p_test_nocond(s)             # <<<<<<<<<<<<<<
 *     return ExprNodes.LambdaNode(
 *         pos, args = args,
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_nocond(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":113
 *     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_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":114
 *         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_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":113
 *     else:
 *         expr = p_test_nocond(s)
 *     return ExprNodes.LambdaNode(             # <<<<<<<<<<<<<<
 *         pos, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);

  /* "Cython/Compiler/Parsing.py":114
 *         expr = p_test_nocond(s)
 *     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_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":115
 *     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_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_starstar_arg, __pyx_v_starstar_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":116
 *         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_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":113
 *     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_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __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":98
 * #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":120
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_lambdef_nocond", 0);

  /* "Cython/Compiler/Parsing.py":121
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":120
 * #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":125
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_test", 0);

  /* "Cython/Compiler/Parsing.py":126
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":127
 * 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_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":128
 *     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_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_pos = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":129
 *         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_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_expr = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":130
 *     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_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":131
 *     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_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":132
 *     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_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_test = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":133
 *         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_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":134
 *         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_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_other = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":135
 *         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_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_test, __pyx_v_test) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_true_val, __pyx_v_expr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_false_val, __pyx_v_other) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __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;
  }
  /*else*/ {

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

  /* "Cython/Compiler/Parsing.py":125
 * #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":141
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_test_nocond", 0);

  /* "Cython/Compiler/Parsing.py":142
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":143
 * 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_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":145
 *         return p_lambdef_nocond(s)
 *     else:
 *         return p_or_test(s)             # <<<<<<<<<<<<<<
 * 
 * #or_test: and_test ('or' and_test)*
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_or_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":141
 * #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":149
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_or_test", 0);

  /* "Cython/Compiler/Parsing.py":150
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":149
 * #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":152
 *     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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_rassoc_binop_expr", 0);

  /* "Cython/Compiler/Parsing.py":153
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":154
 * 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_Contains(__pyx_v_s->sy, __pyx_v_ops, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":155
 *     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_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_pos = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":156
 *     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":157
 *         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_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":158
 *         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_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_n2 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":159
 *         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_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_v_op);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_op);
    __Pyx_GIVEREF(__pyx_v_op);
    __Pyx_INCREF(__pyx_v_n1);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_n1);
    __Pyx_GIVEREF(__pyx_v_n1);
    __Pyx_INCREF(__pyx_v_n2);
    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_n2);
    __Pyx_GIVEREF(__pyx_v_n2);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __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_SET(__pyx_v_n1, __pyx_t_5);
    __pyx_t_5 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":160
 *         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":152
 *     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_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":164
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_and_test", 0);

  /* "Cython/Compiler/Parsing.py":166
 * 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_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":164
 * #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":170
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_not_test", 0);

  /* "Cython/Compiler/Parsing.py":171
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":172
 * 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_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_pos = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":173
 *     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_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":174
 *         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_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_operand, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __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;
  }
  /*else*/ {

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

  /* "Cython/Compiler/Parsing.py":170
 * #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":181
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_comparison", 0);

  /* "Cython/Compiler/Parsing.py":182
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n1 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":183
 * 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_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":184
 *     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_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_pos = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":185
 *     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_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_op = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":186
 *         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_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_n2 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":187
 *         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_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":188
 *         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)
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operator, __pyx_v_op) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operand1, __pyx_v_n1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_operand2, __pyx_v_n2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":187
 *         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_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __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":189
 *         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_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":190
 *             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_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_n1, __pyx_n_s_cascade, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":191
 *         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":181
 * #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":193
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_test_or_starred_expr", 0);

  /* "Cython/Compiler/Parsing.py":194
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":195
 * 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_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":197
 *         return p_starred_expr(s)
 *     else:
 *         return p_test(s)             # <<<<<<<<<<<<<<
 * 
 * def p_starred_expr(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":193
 *     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":199
 *         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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_starred_expr", 0);

  /* "Cython/Compiler/Parsing.py":200
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":201
 * 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_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

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

    /* "Cython/Compiler/Parsing.py":203
 *     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_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

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

  /* "Cython/Compiler/Parsing.py":206
 *     else:
 *         starred = False
 *     expr = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *     if starred:
 *         expr = ExprNodes.StarredTargetNode(pos, expr)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

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

    /* "Cython/Compiler/Parsing.py":208
 *     expr = p_bit_expr(s)
 *     if starred:
 *         expr = ExprNodes.StarredTargetNode(pos, expr)             # <<<<<<<<<<<<<<
 *     return expr
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_StarredTargetNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_v_expr);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __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_SET(__pyx_v_expr, __pyx_t_4);
    __pyx_t_4 = 0;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":209
 *     if starred:
 *         expr = ExprNodes.StarredTargetNode(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":199
 *         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_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":211
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cascaded_cmp", 0);

  /* "Cython/Compiler/Parsing.py":212
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":213
 * 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_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_op = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":214
 *     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_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_n2 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":215
 *     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_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":216
 *     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)
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_operator, __pyx_v_op) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_operand2, __pyx_v_n2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":215
 *     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_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __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":217
 *     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_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_comparison_ops, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":218
 *         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_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s_cascade, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":219
 *     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":211
 *     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":221
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cmp_op", 0);

  /* "Cython/Compiler/Parsing.py":222
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":223
 * 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_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":224
 *     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_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":225
 *         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;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":226
 *         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_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":227
 *         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_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":228
 *     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_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":229
 *         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_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":230
 *         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;
      goto __pyx_L4;
    }
    /*else*/ {

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

    /* "Cython/Compiler/Parsing.py":234
 *             op = 'is'
 *     else:
 *         op = s.sy             # <<<<<<<<<<<<<<
 *         s.next()
 *     if op == '<>':
 */
    __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":235
 *     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_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":236
 *         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_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

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

  /* "Cython/Compiler/Parsing.py":238
 *     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":221
 *     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":247
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_bit_expr", 0);

  /* "Cython/Compiler/Parsing.py":248
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":247
 * #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":252
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_xor_expr", 0);

  /* "Cython/Compiler/Parsing.py":253
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":252
 * #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":257
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_and_expr", 0);

  /* "Cython/Compiler/Parsing.py":258
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __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
 * #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":262
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_shift_expr", 0);

  /* "Cython/Compiler/Parsing.py":263
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __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
 * #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":267
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_arith_expr", 0);

  /* "Cython/Compiler/Parsing.py":268
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __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
 * #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":272
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_term", 0);

  /* "Cython/Compiler/Parsing.py":273
 * 
 * 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__23, __pyx_f_6Cython_8Compiler_7Parsing_p_factor); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __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
 * #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":277
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_factor", 0);

  /* "Cython/Compiler/Parsing.py":279
 * 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_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __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
 * #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":281
 *     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;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_p_factor", 0);

  /* "Cython/Compiler/Parsing.py":282
 * 
 * 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":283
 * 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_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__18, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__19, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  if (!__pyx_t_4) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__24, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_4;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":284
 *     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":285
 *     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_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_pos = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":286
 *         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_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":287
 *         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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_unop_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_v_op);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_op);
    __Pyx_GIVEREF(__pyx_v_op);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 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":288
 *         s.next()
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:             # <<<<<<<<<<<<<<
 *         if sy == '&':
 *             pos = s.position()
 */
  __pyx_t_4 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":289
 *         return ExprNodes.unop_node(pos, op, p_factor(s))
 *     elif not s.in_python_file:
 *         if sy == '&':             # <<<<<<<<<<<<<<
 *             pos = s.position()
 *             s.next()
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__13, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":290
 *     elif not s.in_python_file:
 *         if sy == '&':
 *             pos = s.position()             # <<<<<<<<<<<<<<
 *             s.next()
 *             arg = p_factor(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_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_pos = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":291
 *         if sy == '&':
 *             pos = s.position()
 *             s.next()             # <<<<<<<<<<<<<<
 *             arg = p_factor(s)
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":292
 *             pos = s.position()
 *             s.next()
 *             arg = p_factor(s)             # <<<<<<<<<<<<<<
 *             return ExprNodes.AmpersandNode(pos, operand = arg)
 *         elif sy == "<":
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_arg = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":293
 *             s.next()
 *             arg = p_factor(s)
 *             return ExprNodes.AmpersandNode(pos, operand = arg)             # <<<<<<<<<<<<<<
 *         elif sy == "<":
 *             return p_typecast(s)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AmpersandNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_operand, __pyx_v_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":294
 *             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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_kp_u__25, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":295
 *             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_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_typecast(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":296
 *         elif sy == "<":
 *             return p_typecast(s)
 *         elif sy == 'IDENT' and s.systring == "sizeof":             # <<<<<<<<<<<<<<
 *             return p_sizeof(s)
 *     return p_power(s)
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_sizeof, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_3;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":297
 *             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_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_sizeof(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":298
 *         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_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_power(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":281
 *     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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":300
 *     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;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_typecast", 0);

  /* "Cython/Compiler/Parsing.py":302
 * 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_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":303
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":304
 *     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_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_base_type = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":305
 *     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_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_is_memslice = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":306
 *     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_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_is_template = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":307
 *     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_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_is_const = __pyx_t_2;

  /* "Cython/Compiler/Parsing.py":308
 *     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_2 = ((!(__pyx_v_is_memslice != 0)) != 0);
  if (__pyx_t_2) {
    __pyx_t_3 = ((!(__pyx_v_is_template != 0)) != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":309
 *     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_4 = ((!(__pyx_v_is_const != 0)) != 0);
      if (__pyx_t_4) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_base_type, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = (__pyx_t_1 == Py_None);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = (__pyx_t_5 != 0);
      } else {
        __pyx_t_6 = __pyx_t_4;
      }
      __pyx_t_4 = __pyx_t_6;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    __pyx_t_3 = __pyx_t_4;
  } else {
    __pyx_t_3 = __pyx_t_2;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":310
 *     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_filename = __pyx_f[0]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":311
 *         and base_type.name is None):
 *         s.error("Unknown type")
 *     declarator = p_c_declarator(s, empty = 1)             # <<<<<<<<<<<<<<
 *     if s.sy == '?':
 *         s.next()
 */
  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_empty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_declarator = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":312
 *         s.error("Unknown type")
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':             # <<<<<<<<<<<<<<
 *         s.next()
 *         typecheck = 1
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__27, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":313
 *     declarator = p_c_declarator(s, empty = 1)
 *     if s.sy == '?':
 *         s.next()             # <<<<<<<<<<<<<<
 *         typecheck = 1
 *     else:
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

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

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

  /* "Cython/Compiler/Parsing.py":317
 *     else:
 *         typecheck = 0
 *     s.expect(">")             # <<<<<<<<<<<<<<
 *     operand = p_factor(s)
 *     if is_memslice:
 */
  __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__28, NULL); if (unlikely(__pyx_t_3 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":318
 *         typecheck = 0
 *     s.expect(">")
 *     operand = p_factor(s)             # <<<<<<<<<<<<<<
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,
 */
  __pyx_t_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_v_operand = __pyx_t_9;
  __pyx_t_9 = 0;

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

    /* "Cython/Compiler/Parsing.py":320
 *     operand = p_factor(s)
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,             # <<<<<<<<<<<<<<
 *                                          operand=operand)
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_CythonArrayNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":321
 *     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_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":320
 *     operand = p_factor(s)
 *     if is_memslice:
 *         return ExprNodes.CythonArrayNode(pos, base_type_node=base_type,             # <<<<<<<<<<<<<<
 *                                          operand=operand)
 * 
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":323
 *                                          operand=operand)
 * 
 *     return ExprNodes.TypecastNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TypecastNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);

  /* "Cython/Compiler/Parsing.py":324
 * 
 *     return ExprNodes.TypecastNode(pos,
 *         base_type = base_type,             # <<<<<<<<<<<<<<
 *         declarator = declarator,
 *         operand = operand,
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":325
 *     return ExprNodes.TypecastNode(pos,
 *         base_type = base_type,
 *         declarator = declarator,             # <<<<<<<<<<<<<<
 *         operand = operand,
 *         typecheck = typecheck)
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":326
 *         base_type = base_type,
 *         declarator = declarator,
 *         operand = operand,             # <<<<<<<<<<<<<<
 *         typecheck = typecheck)
 * 
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_operand, __pyx_v_operand) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":327
 *         declarator = declarator,
 *         operand = operand,
 *         typecheck = typecheck)             # <<<<<<<<<<<<<<
 * 
 * def p_sizeof(s):
 */
  __pyx_t_9 = __Pyx_PyInt_From_long(__pyx_v_typecheck); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_typecheck, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":323
 *                                          operand=operand)
 * 
 *     return ExprNodes.TypecastNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 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":300
 *     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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __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":329
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_sizeof", 0);

  /* "Cython/Compiler/Parsing.py":331
 * 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_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":332
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":333
 *     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__29, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":337
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":338
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_operand = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":339
 *     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_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_operand, __pyx_v_operand) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":341
 *         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,
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_base_type = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":342
 *     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_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_empty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __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":343
 *         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_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":344
 *         declarator = p_c_declarator(s, empty = 1)
 *         node = ExprNodes.SizeofTypeNode(pos,
 *             base_type = base_type, declarator = declarator)             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     return node
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":343
 *         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_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __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":345
 *         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__30, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

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

  /* "Cython/Compiler/Parsing.py":329
 *         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":348
 *     return node
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_yield_expression", 0);

  /* "Cython/Compiler/Parsing.py":350
 * 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_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":351
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":352
 *     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":353
 *     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_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":354
 *     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":355
 *     if s.sy == 'from':
 *         is_yield_from = True
 *         s.next()             # <<<<<<<<<<<<<<
 *     if s.sy != ')' and s.sy not in statement_terminators:
 *         arg = 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_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":356
 *         is_yield_from = True
 *         s.next()
 *     if s.sy != ')' and s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         arg = p_testlist(s)
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":357
 *         s.next()
 *     if s.sy != ')' and s.sy not in statement_terminators:
 *         arg = p_testlist(s)             # <<<<<<<<<<<<<<
 *     else:
 *         if is_yield_from:
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L4;
  }
  /*else*/ {

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

      /* "Cython/Compiler/Parsing.py":360
 *     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_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);

      /* "Cython/Compiler/Parsing.py":361
 *         if is_yield_from:
 *             s.error("'yield from' requires a source argument",
 *                     pos=pos, fatal=False)             # <<<<<<<<<<<<<<
 *         arg = None
 *     if is_yield_from:
 */
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":360
 *     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__31, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":362
 *             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":363
 *                     pos=pos, fatal=False)
 *         arg = None
 *     if is_yield_from:             # <<<<<<<<<<<<<<
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)
 *     else:
 */
  __pyx_t_4 = (__pyx_v_is_yield_from != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":364
 *         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_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_arg, __pyx_v_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":366
 *         return ExprNodes.YieldFromExprNode(pos, arg=arg)
 *     else:
 *         return ExprNodes.YieldExprNode(pos, arg=arg)             # <<<<<<<<<<<<<<
 * 
 * def p_yield_statement(s):
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg, __pyx_v_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __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":348
 *     return node
 * 
 * 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":368
 *         return ExprNodes.YieldExprNode(pos, arg=arg)
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_yield_statement", 0);

  /* "Cython/Compiler/Parsing.py":370
 * 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_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_yield_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":371
 *     # s.sy == "yield"
 *     yield_expr = p_yield_expression(s)
 *     return Nodes.ExprStatNode(yield_expr.pos, expr=yield_expr)             # <<<<<<<<<<<<<<
 * 
 * #power: atom trailer* ('**' factor)*
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_expr, __pyx_v_yield_expr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __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":368
 *         return ExprNodes.YieldExprNode(pos, arg=arg)
 * 
 * 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":375
 * #power: atom trailer* ('**' factor)*
 * 
 * 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_n1 = NULL;
  PyObject *__pyx_v_pos = NULL;
  PyObject *__pyx_v_n2 = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_power", 0);

  /* "Cython/Compiler/Parsing.py":376
 * 
 * def p_power(s):
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':             # <<<<<<<<<<<<<<
 *         return p_new_expr(s)
 *     n1 = p_atom(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_new, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->peek(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_1;
  }
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":377
 * def p_power(s):
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':
 *         return p_new_expr(s)             # <<<<<<<<<<<<<<
 *     n1 = p_atom(s)
 *     while s.sy in ('(', '[', '.'):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_new_expr(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":378
 *     if s.systring == 'new' and s.peek()[0] == 'IDENT':
 *         return p_new_expr(s)
 *     n1 = p_atom(s)             # <<<<<<<<<<<<<<
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)
 */
  __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_atom(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_n1 = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":379
 *         return p_new_expr(s)
 *     n1 = p_atom(s)
 *     while s.sy in ('(', '[', '.'):             # <<<<<<<<<<<<<<
 *         n1 = p_trailer(s, n1)
 *     if s.sy == '**':
 */
  while (1) {
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_3 = __pyx_v_s->sy;
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_5) {
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_1;
    } else {
      __pyx_t_4 = __pyx_t_5;
    }
    if (!__pyx_t_4) {
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__33, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = __pyx_t_5;
    } else {
      __pyx_t_1 = __pyx_t_4;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = (__pyx_t_1 != 0);
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":380
 *     n1 = p_atom(s)
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)             # <<<<<<<<<<<<<<
 *     if s.sy == '**':
 *         pos = s.position()
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_trailer(__pyx_v_s, __pyx_v_n1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_3);
    __pyx_t_3 = 0;
  }

  /* "Cython/Compiler/Parsing.py":381
 *     while s.sy in ('(', '[', '.'):
 *         n1 = p_trailer(s, n1)
 *     if s.sy == '**':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__34, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":382
 *         n1 = p_trailer(s, n1)
 *     if s.sy == '**':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         s.next()
 *         n2 = p_factor(s)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_pos = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":383
 *     if s.sy == '**':
 *         pos = s.position()
 *         s.next()             # <<<<<<<<<<<<<<
 *         n2 = p_factor(s)
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":384
 *         pos = s.position()
 *         s.next()
 *         n2 = p_factor(s)             # <<<<<<<<<<<<<<
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)
 *     return n1
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_factor(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_n2 = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":385
 *         s.next()
 *         n2 = p_factor(s)
 *         n1 = ExprNodes.binop_node(pos, '**', n1, n2)             # <<<<<<<<<<<<<<
 *     return n1
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u__34);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u__34);
    __Pyx_GIVEREF(__pyx_kp_u__34);
    __Pyx_INCREF(__pyx_v_n1);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_n1);
    __Pyx_GIVEREF(__pyx_v_n1);
    __Pyx_INCREF(__pyx_v_n2);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_n2);
    __Pyx_GIVEREF(__pyx_v_n2);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_n1, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

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

  /* "Cython/Compiler/Parsing.py":375
 * #power: atom trailer* ('**' factor)*
 * 
 * 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_2);
  __Pyx_XDECREF(__pyx_t_3);
  __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_n1);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XDECREF(__pyx_v_n2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":388
 *     return n1
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_new_expr", 0);

  /* "Cython/Compiler/Parsing.py":390
 * 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_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":391
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":392
 *     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_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cppclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":393
 *     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_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cppclass, __pyx_v_cppclass) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __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":388
 *     return n1
 * 
 * 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":397
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_trailer", 0);

  /* "Cython/Compiler/Parsing.py":398
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":399
 * 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__29, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":400
 *     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_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":401
 *     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__32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":402
 *         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_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":404
 *         return p_index(s, node1)
 *     else: # s.sy == '.'
 *         s.next()             # <<<<<<<<<<<<<<
 *         name = EncodedString( p_ident(s) )
 *         return ExprNodes.AttributeNode(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_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":405
 *     else: # s.sy == '.'
 *         s.next()
 *         name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":406
 *         s.next()
 *         name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":407
 *         name = EncodedString( p_ident(s) )
 *         return ExprNodes.AttributeNode(pos,
 *             obj = node1, attribute = name)             # <<<<<<<<<<<<<<
 * 
 * # arglist:  argument (',' argument)* [',']
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_obj, __pyx_v_node1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_attribute, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":406
 *         s.next()
 *         name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __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":397
 * #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":412
 * # argument: [test '='] test       # Really [keyword '='] test
 * 
 * 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;
  PyObject *__pyx_v_star_arg = NULL;
  PyObject *__pyx_v_starstar_arg = NULL;
  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;
  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;
  Py_ssize_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_call_parse_args", 0);
  if (__pyx_optional_args) {
  }

  /* "Cython/Compiler/Parsing.py":414
 * 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_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":415
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":416
 *     pos = s.position()
 *     s.next()
 *     positional_args = []             # <<<<<<<<<<<<<<
 *     keyword_args = []
 *     star_arg = None
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_positional_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":417
 *     s.next()
 *     positional_args = []
 *     keyword_args = []             # <<<<<<<<<<<<<<
 *     star_arg = None
 *     starstar_arg = None
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_keyword_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":418
 *     positional_args = []
 *     keyword_args = []
 *     star_arg = None             # <<<<<<<<<<<<<<
 *     starstar_arg = None
 *     while s.sy not in ('**', ')'):
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_star_arg = Py_None;

  /* "Cython/Compiler/Parsing.py":419
 *     keyword_args = []
 *     star_arg = None
 *     starstar_arg = None             # <<<<<<<<<<<<<<
 *     while s.sy not in ('**', ')'):
 *         if s.sy == '*':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_starstar_arg = Py_None;

  /* "Cython/Compiler/Parsing.py":420
 *     star_arg = None
 *     starstar_arg = None
 *     while s.sy not in ('**', ')'):             # <<<<<<<<<<<<<<
 *         if s.sy == '*':
 *             if star_arg:
 */
  while (1) {
    __Pyx_INCREF(__pyx_v_s->sy);
    __pyx_t_1 = __pyx_v_s->sy;
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__34, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__30, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__pyx_t_4 != 0);
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":421
 *     starstar_arg = None
 *     while s.sy not in ('**', ')'):
 *         if s.sy == '*':             # <<<<<<<<<<<<<<
 *             if star_arg:
 *                 s.error("only one star-arg parameter allowed",
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":422
 *     while s.sy not in ('**', ')'):
 *         if s.sy == '*':
 *             if star_arg:             # <<<<<<<<<<<<<<
 *                 s.error("only one star-arg parameter allowed",
 *                         pos=s.position())
 */
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_star_arg); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":423
 *         if s.sy == '*':
 *             if star_arg:
 *                 s.error("only one star-arg parameter allowed",             # <<<<<<<<<<<<<<
 *                         pos=s.position())
 *             s.next()
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);

        /* "Cython/Compiler/Parsing.py":424
 *             if star_arg:
 *                 s.error("only one star-arg parameter allowed",
 *                         pos=s.position())             # <<<<<<<<<<<<<<
 *             s.next()
 *             star_arg = p_test(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_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":423
 *         if s.sy == '*':
 *             if star_arg:
 *                 s.error("only one star-arg parameter allowed",             # <<<<<<<<<<<<<<
 *                         pos=s.position())
 *             s.next()
 */
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__35, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L6;
      }
      __pyx_L6:;

      /* "Cython/Compiler/Parsing.py":425
 *                 s.error("only one star-arg parameter allowed",
 *                         pos=s.position())
 *             s.next()             # <<<<<<<<<<<<<<
 *             star_arg = p_test(s)
 *         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_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":426
 *                         pos=s.position())
 *             s.next()
 *             star_arg = p_test(s)             # <<<<<<<<<<<<<<
 *         else:
 *             arg = p_test(s)
 */
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_star_arg, __pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":428
 *             star_arg = p_test(s)
 *         else:
 *             arg = p_test(s)             # <<<<<<<<<<<<<<
 *             if s.sy == '=':
 *                 s.next()
 */
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":429
 *         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__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":430
 *             arg = p_test(s)
 *             if s.sy == '=':
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",
 */
        __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_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":431
 *             if s.sy == '=':
 *                 s.next()
 *                 if not arg.is_name:             # <<<<<<<<<<<<<<
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_is_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_4 = ((!__pyx_t_2) != 0);
        if (__pyx_t_4) {

          /* "Cython/Compiler/Parsing.py":432
 *                 s.next()
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(arg.name)
 */
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);

          /* "Cython/Compiler/Parsing.py":433
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)             # <<<<<<<<<<<<<<
 *                 encoded_name = EncodedString(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":432
 *                 s.next()
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(arg.name)
 */
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__37, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __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;
          goto __pyx_L8;
        }
        __pyx_L8:;

        /* "Cython/Compiler/Parsing.py":434
 *                     s.error("Expected an identifier before '='",
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(arg.name)             # <<<<<<<<<<<<<<
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_encoded_name, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":435
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(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_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);

        /* "Cython/Compiler/Parsing.py":436
 *                 encoded_name = EncodedString(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *                 keyword_args.append((keyword, arg))
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);

        /* "Cython/Compiler/Parsing.py":435
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 */
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __pyx_t_5 = 0;
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);

        /* "Cython/Compiler/Parsing.py":436
 *                 encoded_name = EncodedString(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *                 keyword_args.append((keyword, arg))
 */
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_encoded_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "Cython/Compiler/Parsing.py":435
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(arg.name)
 *                 keyword = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 */
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __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_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_keyword, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":437
 *                 keyword = ExprNodes.IdentifierStringNode(
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)             # <<<<<<<<<<<<<<
 *                 keyword_args.append((keyword, arg))
 *             else:
 */
        __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":438
 *                     arg.pos, value=encoded_name)
 *                 arg = p_test(s)
 *                 keyword_args.append((keyword, arg))             # <<<<<<<<<<<<<<
 *             else:
 *                 if keyword_args:
 */
        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_v_keyword);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_keyword);
        __Pyx_GIVEREF(__pyx_v_keyword);
        __Pyx_INCREF(__pyx_v_arg);
        PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_arg);
        __Pyx_GIVEREF(__pyx_v_arg);
        __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_keyword_args, __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L7;
      }
      /*else*/ {

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

          /* "Cython/Compiler/Parsing.py":441
 *             else:
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 if star_arg:
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);

          /* "Cython/Compiler/Parsing.py":442
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg",
 *                             pos=arg.pos)             # <<<<<<<<<<<<<<
 *                 if star_arg:
 *                     s.error("Non-keyword arg following star-arg",
 */
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

          /* "Cython/Compiler/Parsing.py":441
 *             else:
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 if star_arg:
 */
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__38, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L9;
        }
        __pyx_L9:;

        /* "Cython/Compiler/Parsing.py":443
 *                     s.error("Non-keyword arg following keyword arg",
 *                             pos=arg.pos)
 *                 if star_arg:             # <<<<<<<<<<<<<<
 *                     s.error("Non-keyword arg following star-arg",
 *                             pos=arg.pos)
 */
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_star_arg); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_4) {

          /* "Cython/Compiler/Parsing.py":444
 *                             pos=arg.pos)
 *                 if star_arg:
 *                     s.error("Non-keyword arg following star-arg",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 positional_args.append(arg)
 */
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);

          /* "Cython/Compiler/Parsing.py":445
 *                 if star_arg:
 *                     s.error("Non-keyword arg following star-arg",
 *                             pos=arg.pos)             # <<<<<<<<<<<<<<
 *                 positional_args.append(arg)
 *         if s.sy != ',':
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_pos, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "Cython/Compiler/Parsing.py":444
 *                             pos=arg.pos)
 *                 if star_arg:
 *                     s.error("Non-keyword arg following star-arg",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 positional_args.append(arg)
 */
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__39, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
          goto __pyx_L10;
        }
        __pyx_L10:;

        /* "Cython/Compiler/Parsing.py":446
 *                     s.error("Non-keyword arg following star-arg",
 *                             pos=arg.pos)
 *                 positional_args.append(arg)             # <<<<<<<<<<<<<<
 *         if s.sy != ',':
 *             break
 */
        __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_v_arg); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_L7:;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":447
 *                             pos=arg.pos)
 *                 positional_args.append(arg)
 *         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_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":448
 *                 positional_args.append(arg)
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 * 
 */
      goto __pyx_L4_break;
    }

    /* "Cython/Compiler/Parsing.py":449
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 * 
 *     if s.sy == 'for':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":451
 *         s.next()
 * 
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         if len(positional_args) == 1 and not star_arg:
 *             positional_args = [ p_genexp(s, positional_args[0]) ]
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":452
 * 
 *     if s.sy == 'for':
 *         if len(positional_args) == 1 and not star_arg:             # <<<<<<<<<<<<<<
 *             positional_args = [ p_genexp(s, positional_args[0]) ]
 *     elif s.sy == '**':
 */
    __pyx_t_9 = PyList_GET_SIZE(__pyx_v_positional_args); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = ((__pyx_t_9 == 1) != 0);
    if (__pyx_t_4) {
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_star_arg); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = ((!__pyx_t_2) != 0);
      __pyx_t_2 = __pyx_t_3;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":453
 *     if s.sy == 'for':
 *         if len(positional_args) == 1 and not star_arg:
 *             positional_args = [ p_genexp(s, positional_args[0]) ]             # <<<<<<<<<<<<<<
 *     elif s.sy == '**':
 *         s.next()
 */
      __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_positional_args, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_genexp(__pyx_v_s, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_positional_args, ((PyObject*)__pyx_t_7));
      __pyx_t_7 = 0;
      goto __pyx_L13;
    }
    __pyx_L13:;
    goto __pyx_L12;
  }

  /* "Cython/Compiler/Parsing.py":454
 *         if len(positional_args) == 1 and not star_arg:
 *             positional_args = [ p_genexp(s, positional_args[0]) ]
 *     elif s.sy == '**':             # <<<<<<<<<<<<<<
 *         s.next()
 *         starstar_arg = p_test(s)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__34, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":455
 *             positional_args = [ p_genexp(s, positional_args[0]) ]
 *     elif s.sy == '**':
 *         s.next()             # <<<<<<<<<<<<<<
 *         starstar_arg = p_test(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_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":456
 *     elif s.sy == '**':
 *         s.next()
 *         starstar_arg = p_test(s)             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
    __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF_SET(__pyx_v_starstar_arg, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":457
 *         s.next()
 *         starstar_arg = p_test(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *     s.expect(')')
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":458
 *         starstar_arg = p_test(s)
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     return positional_args, keyword_args, star_arg, starstar_arg
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L14;
    }
    __pyx_L14:;
    goto __pyx_L12;
  }
  __pyx_L12:;

  /* "Cython/Compiler/Parsing.py":459
 *         if s.sy == ',':
 *             s.next()
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     return positional_args, keyword_args, star_arg, starstar_arg
 * 
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":460
 *             s.next()
 *     s.expect(')')
 *     return positional_args, keyword_args, star_arg, starstar_arg             # <<<<<<<<<<<<<<
 * 
 * def p_call_build_packed_args(pos, positional_args, keyword_args,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_positional_args);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_positional_args);
  __Pyx_GIVEREF(__pyx_v_positional_args);
  __Pyx_INCREF(__pyx_v_keyword_args);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_keyword_args);
  __Pyx_GIVEREF(__pyx_v_keyword_args);
  __Pyx_INCREF(__pyx_v_star_arg);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_star_arg);
  __Pyx_GIVEREF(__pyx_v_star_arg);
  __Pyx_INCREF(__pyx_v_starstar_arg);
  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_starstar_arg);
  __Pyx_GIVEREF(__pyx_v_starstar_arg);
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":412
 * # argument: [test '='] test       # Really [keyword '='] test
 * 
 * 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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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_star_arg);
  __Pyx_XDECREF(__pyx_v_starstar_arg);
  __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":462
 *     return positional_args, keyword_args, star_arg, starstar_arg
 * 
 * def p_call_build_packed_args(pos, positional_args, keyword_args,             # <<<<<<<<<<<<<<
 *                              star_arg, starstar_arg):
 *     arg_tuple = 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_star_arg, PyObject *__pyx_v_starstar_arg) {
  PyObject *__pyx_v_arg_tuple = NULL;
  PyObject *__pyx_v_keyword_dict = NULL;
  PyObject *__pyx_v_star_arg_tuple = NULL;
  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;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *(*__pyx_t_12)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_call_build_packed_args", 0);
  __Pyx_INCREF(__pyx_v_keyword_args);

  /* "Cython/Compiler/Parsing.py":464
 * def p_call_build_packed_args(pos, positional_args, keyword_args,
 *                              star_arg, starstar_arg):
 *     arg_tuple = None             # <<<<<<<<<<<<<<
 *     keyword_dict = None
 *     if positional_args or not star_arg:
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_arg_tuple = Py_None;

  /* "Cython/Compiler/Parsing.py":465
 *                              star_arg, starstar_arg):
 *     arg_tuple = None
 *     keyword_dict = None             # <<<<<<<<<<<<<<
 *     if positional_args or not star_arg:
 *         arg_tuple = ExprNodes.TupleNode(pos,
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_keyword_dict = Py_None;

  /* "Cython/Compiler/Parsing.py":466
 *     arg_tuple = None
 *     keyword_dict = None
 *     if positional_args or not star_arg:             # <<<<<<<<<<<<<<
 *         arg_tuple = ExprNodes.TupleNode(pos,
 *             args = positional_args)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_positional_args); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_1) {
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_star_arg); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (!__pyx_t_2);
    __pyx_t_2 = __pyx_t_3;
  } else {
    __pyx_t_2 = __pyx_t_1;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":467
 *     keyword_dict = None
 *     if positional_args or not star_arg:
 *         arg_tuple = ExprNodes.TupleNode(pos,             # <<<<<<<<<<<<<<
 *             args = positional_args)
 *     if star_arg:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "Cython/Compiler/Parsing.py":468
 *     if positional_args or not star_arg:
 *         arg_tuple = ExprNodes.TupleNode(pos,
 *             args = positional_args)             # <<<<<<<<<<<<<<
 *     if star_arg:
 *         star_arg_tuple = ExprNodes.AsTupleNode(pos, arg = star_arg)
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_args, __pyx_v_positional_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":467
 *     keyword_dict = None
 *     if positional_args or not star_arg:
 *         arg_tuple = ExprNodes.TupleNode(pos,             # <<<<<<<<<<<<<<
 *             args = positional_args)
 *     if star_arg:
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __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_DECREF_SET(__pyx_v_arg_tuple, __pyx_t_7);
    __pyx_t_7 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":469
 *         arg_tuple = ExprNodes.TupleNode(pos,
 *             args = positional_args)
 *     if star_arg:             # <<<<<<<<<<<<<<
 *         star_arg_tuple = ExprNodes.AsTupleNode(pos, arg = star_arg)
 *         if arg_tuple:
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_star_arg); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":470
 *             args = positional_args)
 *     if star_arg:
 *         star_arg_tuple = ExprNodes.AsTupleNode(pos, arg = star_arg)             # <<<<<<<<<<<<<<
 *         if arg_tuple:
 *             arg_tuple = ExprNodes.binop_node(pos,
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AsTupleNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg, __pyx_v_star_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __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_v_star_arg_tuple = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":471
 *     if star_arg:
 *         star_arg_tuple = ExprNodes.AsTupleNode(pos, arg = star_arg)
 *         if arg_tuple:             # <<<<<<<<<<<<<<
 *             arg_tuple = ExprNodes.binop_node(pos,
 *                 operator = '+', operand1 = arg_tuple,
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_arg_tuple); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":472
 *         star_arg_tuple = ExprNodes.AsTupleNode(pos, arg = star_arg)
 *         if arg_tuple:
 *             arg_tuple = ExprNodes.binop_node(pos,             # <<<<<<<<<<<<<<
 *                 operator = '+', operand1 = arg_tuple,
 *                 operand2 = star_arg_tuple)
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_binop_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_operator, __pyx_kp_u__18) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":473
 *         if arg_tuple:
 *             arg_tuple = ExprNodes.binop_node(pos,
 *                 operator = '+', operand1 = arg_tuple,             # <<<<<<<<<<<<<<
 *                 operand2 = star_arg_tuple)
 *         else:
 */
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_operand1, __pyx_v_arg_tuple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":474
 *             arg_tuple = ExprNodes.binop_node(pos,
 *                 operator = '+', operand1 = arg_tuple,
 *                 operand2 = star_arg_tuple)             # <<<<<<<<<<<<<<
 *         else:
 *             arg_tuple = star_arg_tuple
 */
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_operand2, __pyx_v_star_arg_tuple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":472
 *         star_arg_tuple = ExprNodes.AsTupleNode(pos, arg = star_arg)
 *         if arg_tuple:
 *             arg_tuple = ExprNodes.binop_node(pos,             # <<<<<<<<<<<<<<
 *                 operator = '+', operand1 = arg_tuple,
 *                 operand2 = star_arg_tuple)
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __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_DECREF_SET(__pyx_v_arg_tuple, __pyx_t_7);
      __pyx_t_7 = 0;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":476
 *                 operand2 = star_arg_tuple)
 *         else:
 *             arg_tuple = star_arg_tuple             # <<<<<<<<<<<<<<
 *     if keyword_args or starstar_arg:
 *         keyword_args = [ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 */
      __Pyx_INCREF(__pyx_v_star_arg_tuple);
      __Pyx_DECREF_SET(__pyx_v_arg_tuple, __pyx_v_star_arg_tuple);
    }
    __pyx_L5:;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":477
 *         else:
 *             arg_tuple = star_arg_tuple
 *     if keyword_args or starstar_arg:             # <<<<<<<<<<<<<<
 *         keyword_args = [ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *                           for key, value in keyword_args]
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keyword_args); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_starstar_arg); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_1;
  } else {
    __pyx_t_3 = __pyx_t_2;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":478
 *             arg_tuple = star_arg_tuple
 *     if keyword_args or starstar_arg:
 *         keyword_args = [ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)             # <<<<<<<<<<<<<<
 *                           for key, value in keyword_args]
 *         if starstar_arg:
 */
    { /* enter inner scope */
      PyObject *__pyx_7genexpr__pyx_v_key = NULL;
      PyObject *__pyx_7genexpr__pyx_v_value = NULL;
      __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":479
 *     if keyword_args or starstar_arg:
 *         keyword_args = [ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *                           for key, value in keyword_args]             # <<<<<<<<<<<<<<
 *         if starstar_arg:
 *             keyword_dict = ExprNodes.KeywordArgsNode(
 */
      if (PyList_CheckExact(__pyx_v_keyword_args) || PyTuple_CheckExact(__pyx_v_keyword_args)) {
        __pyx_t_6 = __pyx_v_keyword_args; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_keyword_args); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext;
      }
      for (;;) {
        if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_6)) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_COMPILING_IN_CPYTHON
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          #endif
        } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_6)) {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_COMPILING_IN_CPYTHON
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          #endif
        } else {
          __pyx_t_5 = __pyx_t_9(__pyx_t_6);
          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_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_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_CPYTHON
          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_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          }
          #if CYTHON_COMPILING_IN_CPYTHON
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_10);
          #else
          __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          __Pyx_GOTREF(__pyx_t_10);
          #endif
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
          index = 0; __pyx_t_4 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_4);
          index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L12_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_10);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          __pyx_t_12 = NULL;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          goto __pyx_L13_unpacking_done;
          __pyx_L12_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_12 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
          __pyx_L13_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_key, __pyx_t_4);
        __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_value, __pyx_t_10);
        __pyx_t_10 = 0;

        /* "Cython/Compiler/Parsing.py":478
 *             arg_tuple = star_arg_tuple
 *     if keyword_args or starstar_arg:
 *         keyword_args = [ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)             # <<<<<<<<<<<<<<
 *                           for key, value in keyword_args]
 *         if starstar_arg:
 */
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_key, __pyx_n_s_pos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_pos, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_key, __pyx_7genexpr__pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_value, __pyx_7genexpr__pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_key);
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value);
      goto __pyx_L14_exit_scope;
      __pyx_L9_error:;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_key);
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value);
      goto __pyx_L1_error;
      __pyx_L14_exit_scope:;
    } /* exit inner scope */
    __Pyx_DECREF_SET(__pyx_v_keyword_args, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":480
 *         keyword_args = [ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *                           for key, value in keyword_args]
 *         if starstar_arg:             # <<<<<<<<<<<<<<
 *             keyword_dict = ExprNodes.KeywordArgsNode(
 *                 pos,
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_starstar_arg); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":481
 *                           for key, value in keyword_args]
 *         if starstar_arg:
 *             keyword_dict = ExprNodes.KeywordArgsNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 starstar_arg = starstar_arg,
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_KeywordArgsNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":482
 *         if starstar_arg:
 *             keyword_dict = ExprNodes.KeywordArgsNode(
 *                 pos,             # <<<<<<<<<<<<<<
 *                 starstar_arg = starstar_arg,
 *                 keyword_args = keyword_args)
 */
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":481
 *                           for key, value in keyword_args]
 *         if starstar_arg:
 *             keyword_dict = ExprNodes.KeywordArgsNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 starstar_arg = starstar_arg,
 */
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);

      /* "Cython/Compiler/Parsing.py":483
 *             keyword_dict = ExprNodes.KeywordArgsNode(
 *                 pos,
 *                 starstar_arg = starstar_arg,             # <<<<<<<<<<<<<<
 *                 keyword_args = keyword_args)
 *         else:
 */
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_starstar_arg, __pyx_v_starstar_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":484
 *                 pos,
 *                 starstar_arg = starstar_arg,
 *                 keyword_args = keyword_args)             # <<<<<<<<<<<<<<
 *         else:
 *             keyword_dict = ExprNodes.DictNode(
 */
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_keyword_args, __pyx_v_keyword_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":481
 *                           for key, value in keyword_args]
 *         if starstar_arg:
 *             keyword_dict = ExprNodes.KeywordArgsNode(             # <<<<<<<<<<<<<<
 *                 pos,
 *                 starstar_arg = starstar_arg,
 */
      __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF_SET(__pyx_v_keyword_dict, __pyx_t_10);
      __pyx_t_10 = 0;
      goto __pyx_L15;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":486
 *                 keyword_args = keyword_args)
 *         else:
 *             keyword_dict = ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                 pos, key_value_pairs = keyword_args)
 *     return arg_tuple, keyword_dict
 */
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);

      /* "Cython/Compiler/Parsing.py":487
 *         else:
 *             keyword_dict = ExprNodes.DictNode(
 *                 pos, key_value_pairs = keyword_args)             # <<<<<<<<<<<<<<
 *     return arg_tuple, keyword_dict
 * 
 */
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":486
 *                 keyword_args = keyword_args)
 *         else:
 *             keyword_dict = ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                 pos, key_value_pairs = keyword_args)
 *     return arg_tuple, keyword_dict
 */
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);

      /* "Cython/Compiler/Parsing.py":487
 *         else:
 *             keyword_dict = ExprNodes.DictNode(
 *                 pos, key_value_pairs = keyword_args)             # <<<<<<<<<<<<<<
 *     return arg_tuple, keyword_dict
 * 
 */
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_key_value_pairs, __pyx_v_keyword_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":486
 *                 keyword_args = keyword_args)
 *         else:
 *             keyword_dict = ExprNodes.DictNode(             # <<<<<<<<<<<<<<
 *                 pos, key_value_pairs = keyword_args)
 *     return arg_tuple, keyword_dict
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF_SET(__pyx_v_keyword_dict, __pyx_t_7);
      __pyx_t_7 = 0;
    }
    __pyx_L15:;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":488
 *             keyword_dict = ExprNodes.DictNode(
 *                 pos, key_value_pairs = keyword_args)
 *     return arg_tuple, keyword_dict             # <<<<<<<<<<<<<<
 * 
 * def p_call(s, function):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_arg_tuple);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_arg_tuple);
  __Pyx_GIVEREF(__pyx_v_arg_tuple);
  __Pyx_INCREF(__pyx_v_keyword_dict);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_keyword_dict);
  __Pyx_GIVEREF(__pyx_v_keyword_dict);
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":462
 *     return positional_args, keyword_args, star_arg, starstar_arg
 * 
 * def p_call_build_packed_args(pos, positional_args, keyword_args,             # <<<<<<<<<<<<<<
 *                              star_arg, starstar_arg):
 *     arg_tuple = None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __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_arg_tuple);
  __Pyx_XDECREF(__pyx_v_keyword_dict);
  __Pyx_XDECREF(__pyx_v_star_arg_tuple);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":490
 *     return arg_tuple, keyword_dict
 * 
 * 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_star_arg = NULL;
  PyObject *__pyx_v_starstar_arg = 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 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_call", 0);

  /* "Cython/Compiler/Parsing.py":492
 * def p_call(s, function):
 *     # s.sy == '('
 *     pos = s.position()             # <<<<<<<<<<<<<<
 * 
 *     positional_args, keyword_args, star_arg, starstar_arg = \
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":495
 * 
 *     positional_args, keyword_args, star_arg, starstar_arg = \
 *                      p_call_parse_args(s)             # <<<<<<<<<<<<<<
 * 
 *     if not (keyword_args or star_arg or starstar_arg):
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    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); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); 
    } 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_t_5 = PyList_GET_ITEM(sequence, 3); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5};
      for (i=0; i < 4; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __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_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5};
    __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
    for (index=0; index < 4; index++) {
      PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L4_unpacking_done:;
  }

  /* "Cython/Compiler/Parsing.py":494
 *     pos = s.position()
 * 
 *     positional_args, keyword_args, star_arg, starstar_arg = \             # <<<<<<<<<<<<<<
 *                      p_call_parse_args(s)
 * 
 */
  __pyx_v_positional_args = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_keyword_args = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_star_arg = __pyx_t_4;
  __pyx_t_4 = 0;
  __pyx_v_starstar_arg = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":497
 *                      p_call_parse_args(s)
 * 
 *     if not (keyword_args or star_arg or starstar_arg):             # <<<<<<<<<<<<<<
 *         return ExprNodes.SimpleCallNode(pos,
 *             function = function,
 */
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_keyword_args); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_8) {
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_star_arg); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_9) {
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_starstar_arg); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_11 = __pyx_t_10;
    } else {
      __pyx_t_11 = __pyx_t_9;
    }
    __pyx_t_9 = __pyx_t_11;
  } else {
    __pyx_t_9 = __pyx_t_8;
  }
  __pyx_t_8 = ((!__pyx_t_9) != 0);
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":498
 * 
 *     if not (keyword_args or star_arg or starstar_arg):
 *         return ExprNodes.SimpleCallNode(pos,             # <<<<<<<<<<<<<<
 *             function = function,
 *             args = positional_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_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":499
 *     if not (keyword_args or star_arg or starstar_arg):
 *         return ExprNodes.SimpleCallNode(pos,
 *             function = function,             # <<<<<<<<<<<<<<
 *             args = positional_args)
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_function, __pyx_v_function) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":500
 *         return ExprNodes.SimpleCallNode(pos,
 *             function = function,
 *             args = positional_args)             # <<<<<<<<<<<<<<
 *     else:
 *         arg_tuple, keyword_dict = p_call_build_packed_args(
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_v_positional_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":498
 * 
 *     if not (keyword_args or star_arg or starstar_arg):
 *         return ExprNodes.SimpleCallNode(pos,             # <<<<<<<<<<<<<<
 *             function = function,
 *             args = positional_args)
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __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(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":502
 *             args = positional_args)
 *     else:
 *         arg_tuple, keyword_dict = p_call_build_packed_args(             # <<<<<<<<<<<<<<
 *             pos, positional_args, keyword_args, star_arg, starstar_arg)
 *         return ExprNodes.GeneralCallNode(pos,
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args(__pyx_v_pos, __pyx_v_positional_args, __pyx_v_keyword_args, __pyx_v_star_arg, __pyx_v_starstar_arg); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_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_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L7_unpacking_done:;
    }
    __pyx_v_arg_tuple = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_keyword_dict = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":504
 *         arg_tuple, keyword_dict = p_call_build_packed_args(
 *             pos, positional_args, keyword_args, star_arg, starstar_arg)
 *         return ExprNodes.GeneralCallNode(pos,             # <<<<<<<<<<<<<<
 *             function = function,
 *             positional_args = arg_tuple,
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_GeneralCallNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":505
 *             pos, positional_args, keyword_args, star_arg, starstar_arg)
 *         return ExprNodes.GeneralCallNode(pos,
 *             function = function,             # <<<<<<<<<<<<<<
 *             positional_args = arg_tuple,
 *             keyword_args = keyword_dict)
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_function, __pyx_v_function) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":506
 *         return ExprNodes.GeneralCallNode(pos,
 *             function = function,
 *             positional_args = arg_tuple,             # <<<<<<<<<<<<<<
 *             keyword_args = keyword_dict)
 * 
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_positional_args, __pyx_v_arg_tuple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":507
 *             function = function,
 *             positional_args = arg_tuple,
 *             keyword_args = keyword_dict)             # <<<<<<<<<<<<<<
 * 
 * #lambdef: 'lambda' [varargslist] ':' test
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_keyword_args, __pyx_v_keyword_dict) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":504
 *         arg_tuple, keyword_dict = p_call_build_packed_args(
 *             pos, positional_args, keyword_args, star_arg, starstar_arg)
 *         return ExprNodes.GeneralCallNode(pos,             # <<<<<<<<<<<<<<
 *             function = function,
 *             positional_args = arg_tuple,
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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":490
 *     return arg_tuple, keyword_dict
 * 
 * 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_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __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_star_arg);
  __Pyx_XDECREF(__pyx_v_starstar_arg);
  __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":513
 * #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;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_index", 0);

  /* "Cython/Compiler/Parsing.py":515
 * 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_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":516
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":517
 *     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_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    #if CYTHON_COMPILING_IN_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    __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_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __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":518
 *     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_4 = __Pyx_PyObject_IsTrue(__pyx_v_is_single_value); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_subscripts, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = (__pyx_t_5 == 2);
    __pyx_t_7 = __pyx_t_6;
  } else {
    __pyx_t_7 = __pyx_t_4;
  }
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":519
 *     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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __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_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __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_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L4_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L5_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":520
 *     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_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "Cython/Compiler/Parsing.py":521
 *         start, stop = subscripts[0]
 *         result = ExprNodes.SliceIndexNode(pos,
 *             base = base, start = start, stop = stop)             # <<<<<<<<<<<<<<
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)
 */
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_start, __pyx_v_start) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stop, __pyx_v_stop) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":520
 *     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_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":523
 *             base = base, start = start, stop = stop)
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)             # <<<<<<<<<<<<<<
 *         if is_single_value:
 *             index = indexes[0]
 */
    __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes(__pyx_v_pos, __pyx_v_subscripts); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_v_indexes = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":524
 *     else:
 *         indexes = make_slice_nodes(pos, subscripts)
 *         if is_single_value:             # <<<<<<<<<<<<<<
 *             index = indexes[0]
 *         else:
 */
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_is_single_value); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":525
 *         indexes = make_slice_nodes(pos, subscripts)
 *         if is_single_value:
 *             index = indexes[0]             # <<<<<<<<<<<<<<
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 */
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_indexes, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_v_index = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":527
 *             index = indexes[0]
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)             # <<<<<<<<<<<<<<
 *         result = ExprNodes.IndexNode(pos,
 *             base = base, index = index)
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_args, __pyx_v_indexes) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __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_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_v_index = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":528
 *         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_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "Cython/Compiler/Parsing.py":529
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 *         result = ExprNodes.IndexNode(pos,
 *             base = base, index = index)             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     return result
 */
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_index, __pyx_v_index) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":528
 *         else:
 *             index = ExprNodes.TupleNode(pos, args = indexes)
 *         result = ExprNodes.IndexNode(pos,             # <<<<<<<<<<<<<<
 *             base = base, index = index)
 *     s.expect(']')
 */
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __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;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":530
 *         result = ExprNodes.IndexNode(pos,
 *             base = base, index = index)
 *     s.expect(']')             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  __pyx_t_7 = ((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_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":531
 *             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":513
 * #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_8);
  __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":533
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_subscript_list", 0);

  /* "Cython/Compiler/Parsing.py":534
 * 
 * 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":535
 * 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_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_items = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":536
 *     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_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":537
 *     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":538
 *     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_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":539
 *         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__40, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

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

    /* "Cython/Compiler/Parsing.py":541
 *         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_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":542
 *             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_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_items);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_items);
  __Pyx_GIVEREF(__pyx_v_items);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":533
 *     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":546
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_subscript", 0);

  /* "Cython/Compiler/Parsing.py":550
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":551
 *     # 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__41); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_start = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":552
 *     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_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":553
 *     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_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_start);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);
    __Pyx_GIVEREF(__pyx_v_start);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":554
 *     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_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":555
 *         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__42); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":556
 *     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_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":557
 *     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_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_start);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);
    __Pyx_GIVEREF(__pyx_v_start);
    __Pyx_INCREF(__pyx_v_stop);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_stop);
    __Pyx_GIVEREF(__pyx_v_stop);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":558
 *     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_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":559
 *         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__43); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_step = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":560
 *     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_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_start);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);
  __Pyx_GIVEREF(__pyx_v_start);
  __Pyx_INCREF(__pyx_v_stop);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_stop);
  __Pyx_GIVEREF(__pyx_v_stop);
  __Pyx_INCREF(__pyx_v_step);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_step);
  __Pyx_GIVEREF(__pyx_v_step);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":546
 * #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":562
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_slice_element", 0);

  /* "Cython/Compiler/Parsing.py":565
 *     # 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_Contains(__pyx_v_s->sy, __pyx_v_follow_set, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":566
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

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

  /* "Cython/Compiler/Parsing.py":562
 *     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":570
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expect_ellipsis", 0);

  /* "Cython/Compiler/Parsing.py":571
 * 
 * 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__33, NULL); if (unlikely(__pyx_t_1 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":572
 * 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__33, NULL); if (unlikely(__pyx_t_1 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":573
 *     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__33, NULL); if (unlikely(__pyx_t_1 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":570
 *         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":575
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_slice_nodes", 0);

  /* "Cython/Compiler/Parsing.py":580
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":581
 *     # more components.
 *     result = []
 *     for subscript in subscripts:             # <<<<<<<<<<<<<<
 *         if len(subscript) == 1:
 *             result.append(subscript[0])
 */
  if (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_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  for (;;) {
    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #endif
    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #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_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __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":582
 *     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_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = ((__pyx_t_5 == 1) != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":583
 *     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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":585
 *             result.append(subscript[0])
 *         else:
 *             result.append(make_slice_node(pos, *subscript))             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_make_slice_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_9 = PySequence_Tuple(__pyx_v_subscript); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __pyx_L5:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":586
 *         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":575
 *     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":588
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":589
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":590
 * 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_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __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_SET(__pyx_v_start, __pyx_t_5);
    __pyx_t_5 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":591
 *     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_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = ((!__pyx_t_2) != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":592
 *         start = ExprNodes.NoneNode(pos)
 *     if not stop:
 *         stop = ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":593
 *     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_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":594
 *         stop = ExprNodes.NoneNode(pos)
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)             # <<<<<<<<<<<<<<
 *     return ExprNodes.SliceNode(pos,
 *         start = start, stop = stop, step = step)
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __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_SET(__pyx_v_step, __pyx_t_5);
    __pyx_t_5 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":595
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,             # <<<<<<<<<<<<<<
 *         start = start, stop = stop, step = step)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SliceNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":596
 *         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+
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_start, __pyx_v_start) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stop, __pyx_v_stop) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_step, __pyx_v_step) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":595
 *     if not step:
 *         step = ExprNodes.NoneNode(pos)
 *     return ExprNodes.SliceNode(pos,             # <<<<<<<<<<<<<<
 *         start = start, stop = stop, step = step)
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __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_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":588
 *     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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 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_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __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":600
 * #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;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_atom", 0);

  /* "Cython/Compiler/Parsing.py":601
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":602
 * 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":603
 *     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__29, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":604
 *     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_filename = __pyx_f[0]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":605
 *     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__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":606
 *         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_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":607
 *         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_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":608
 *             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_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_result = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":610
 *             result = p_yield_expression(s)
 *         else:
 *             result = p_testlist_comp(s)             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *         return result
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist_comp(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_result = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":611
 *         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__30, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":612
 *             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":613
 *         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__32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":614
 *         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_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":615
 *     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__44, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":616
 *         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_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":617
 *     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__45, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":618
 *         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_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":619
 *     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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":620
 *         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_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":621
 *     elif sy == '.':
 *         expect_ellipsis(s)
 *         return ExprNodes.EllipsisNode(pos)             # <<<<<<<<<<<<<<
 *     elif sy == 'INT':
 *         return p_int_literal(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_EllipsisNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":622
 *         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_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":623
 *         return ExprNodes.EllipsisNode(pos)
 *     elif sy == 'INT':
 *         return p_int_literal(s)             # <<<<<<<<<<<<<<
 *     elif sy == 'FLOAT':
 *         value = s.systring
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_int_literal(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":624
 *     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_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":625
 *         return p_int_literal(s)
 *     elif sy == 'FLOAT':
 *         value = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.FloatNode(pos, value = value)
 */
    __pyx_t_3 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_value = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":626
 *     elif sy == 'FLOAT':
 *         value = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":627
 *         value = s.systring
 *         s.next()
 *         return ExprNodes.FloatNode(pos, value = value)             # <<<<<<<<<<<<<<
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_FloatNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __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_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":628
 *         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_filename = __pyx_f[0]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":629
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)
 */
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_s->systring, 0, -1, NULL, NULL, &__pyx_slice__46, 0, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":630
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.ImagNode(pos, value = value)
 *     elif sy == 'BEGIN_STRING':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":631
 *         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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ImagNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __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(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":632
 *         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_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":633
 *         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_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_1);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 2; __pyx_t_1 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L6_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_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":634
 *     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_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":635
 *         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_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_CharNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_bytes_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __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_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":636
 *         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_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":637
 *             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_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_unicode_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_bytes_value, __pyx_v_bytes_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __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(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":638
 *         elif kind == 'u':
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':             # <<<<<<<<<<<<<<
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         else:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":639
 *             return ExprNodes.UnicodeNode(pos, value = unicode_value, bytes_value = bytes_value)
 *         elif kind == 'b':
 *             return ExprNodes.BytesNode(pos, value = bytes_value)             # <<<<<<<<<<<<<<
 *         else:
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BytesNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_bytes_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __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_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":641
 *             return ExprNodes.BytesNode(pos, value = bytes_value)
 *         else:
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)             # <<<<<<<<<<<<<<
 *     elif sy == 'IDENT':
 *         name = EncodedString( s.systring )
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_StringNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_bytes_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_unicode_value, __pyx_v_unicode_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __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(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }
  }

  /* "Cython/Compiler/Parsing.py":642
 *         else:
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 *     elif sy == 'IDENT':             # <<<<<<<<<<<<<<
 *         name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":643
 *             return ExprNodes.StringNode(pos, value = bytes_value, unicode_value = unicode_value)
 *     elif sy == 'IDENT':
 *         name = EncodedString( s.systring )             # <<<<<<<<<<<<<<
 *         s.next()
 *         if name == "None":
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_s->systring);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_s->systring);
    __Pyx_GIVEREF(__pyx_v_s->systring);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":644
 *     elif sy == 'IDENT':
 *         name = EncodedString( s.systring )
 *         s.next()             # <<<<<<<<<<<<<<
 *         if name == "None":
 *             return ExprNodes.NoneNode(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_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":645
 *         name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":646
 *         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_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":647
 *         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_filename = __pyx_f[0]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":648
 *             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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, Py_True) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __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":649
 *         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_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":650
 *             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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __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":651
 *         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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_NULL, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_8 = (!(__pyx_v_s->in_python_file != 0));
      __pyx_t_9 = __pyx_t_8;
    } else {
      __pyx_t_9 = __pyx_t_2;
    }
    if (__pyx_t_9) {

      /* "Cython/Compiler/Parsing.py":652
 *             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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NullNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":654
 *             return ExprNodes.NullNode(pos)
 *         else:
 *             return p_name(s, name)             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("Expected an identifier or literal")
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_name(__pyx_v_s, __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":656
 *             return p_name(s, name)
 *     else:
 *         s.error("Expected an identifier or literal")             # <<<<<<<<<<<<<<
 * 
 * def p_int_literal(s):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __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;
  }

  /* "Cython/Compiler/Parsing.py":600
 * #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":658
 *         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;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_int_literal", 0);

  /* "Cython/Compiler/Parsing.py":659
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":660
 * 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_filename = __pyx_f[0]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __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":661
 *     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_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":662
 *     value = s.systring
 *     s.next()
 *     unsigned = ""             # <<<<<<<<<<<<<<
 *     longness = ""
 *     while value[-1] in u"UuLl":
 */
  __Pyx_INCREF(__pyx_kp_u__48);
  __pyx_v_unsigned = __pyx_kp_u__48;

  /* "Cython/Compiler/Parsing.py":663
 *     s.next()
 *     unsigned = ""
 *     longness = ""             # <<<<<<<<<<<<<<
 *     while value[-1] in u"UuLl":
 *         if value[-1] in u"Ll":
 */
  __Pyx_INCREF(__pyx_kp_u__48);
  __pyx_v_longness = __pyx_kp_u__48;

  /* "Cython/Compiler/Parsing.py":664
 *     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, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_3 == (Py_UCS4)-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    switch (__pyx_t_3) {
      case 76:
      case 85:
      case 108:
      case 117:
      __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":665
 *     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, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_5 == (Py_UCS4)-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    switch (__pyx_t_5) {
      case 76:
      case 108:

      /* "Cython/Compiler/Parsing.py":666
 *     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_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_longness, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      break;
      default:

      /* "Cython/Compiler/Parsing.py":668
 *             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_filename = __pyx_f[0]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __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":669
 *         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_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_t_1 = __Pyx_PyUnicode_Substring(__pyx_v_value, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __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":673
 *     # 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":674
 *     # Python files.
 *     is_c_literal = None
 *     if unsigned:             # <<<<<<<<<<<<<<
 *         is_c_literal = True
 *     elif longness:
 */
  __pyx_t_4 = (__pyx_v_unsigned != Py_None) && (PyUnicode_GET_SIZE(__pyx_v_unsigned) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":675
 *     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);
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":676
 *     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) && (PyUnicode_GET_SIZE(__pyx_v_longness) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":677
 *         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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_longness, __pyx_n_u_LL, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_4) {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = __pyx_t_2;
    } else {
      __pyx_t_7 = __pyx_t_4;
    }
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":678
 *     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);
      goto __pyx_L6;
    }
    __pyx_L6:;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":679
 *         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_7 = (__pyx_v_s->in_python_file != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":680
 *             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_7 = __Pyx_PyObject_IsTrue(__pyx_v_is_c_literal); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":681
 *     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_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_illegal_integer_literal_syntax_i);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_illegal_integer_literal_syntax_i);
      __Pyx_GIVEREF(__pyx_kp_u_illegal_integer_literal_syntax_i);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L8;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":682
 *         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);
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":683
 *             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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IntNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);

  /* "Cython/Compiler/Parsing.py":684
 *         is_c_literal = False
 *     return ExprNodes.IntNode(pos,
 *                              is_c_literal = is_c_literal,             # <<<<<<<<<<<<<<
 *                              value = value,
 *                              unsigned = unsigned,
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_is_c_literal, __pyx_v_is_c_literal) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":685
 *     return ExprNodes.IntNode(pos,
 *                              is_c_literal = is_c_literal,
 *                              value = value,             # <<<<<<<<<<<<<<
 *                              unsigned = unsigned,
 *                              longness = longness)
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":686
 *                              is_c_literal = is_c_literal,
 *                              value = value,
 *                              unsigned = unsigned,             # <<<<<<<<<<<<<<
 *                              longness = longness)
 * 
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_unsigned, __pyx_v_unsigned) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":687
 *                              value = value,
 *                              unsigned = unsigned,
 *                              longness = longness)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_longness, __pyx_v_longness) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":683
 *             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_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __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_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":658
 *         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_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __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":690
 * 
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_name", 0);

  /* "Cython/Compiler/Parsing.py":691
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":692
 * 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_2 = ((!(__pyx_v_s->compile_time_expr != 0)) != 0);
  if (__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_s->compile_time_env), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = (__pyx_t_3 != 0);
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":693
 *     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_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":694
 *     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_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":695
 *         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_4 = (__pyx_v_node != Py_None);
    __pyx_t_2 = (__pyx_t_4 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":696
 *         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;
    }
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":697
 *         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_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __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":690
 * 
 * 
 * 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":700
 * 
 * 
 * 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_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;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_compile_time_constant", 0);

  /* "Cython/Compiler/Parsing.py":701
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 701; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_rep = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":702
 * 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":703
 *     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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NoneNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __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":704
 *     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":705
 *         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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_EllipsisNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __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":706
 *     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_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __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":707
 *         return ExprNodes.EllipsisNode(pos)
 *     elif isinstance(value, bool):
 *         return ExprNodes.BoolNode(pos, value=value)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __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":708
 *     elif isinstance(value, bool):
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):             # <<<<<<<<<<<<<<
 *         return ExprNodes.IntNode(pos, value=rep)
 *     elif isinstance(value, long):
 */
  __pyx_t_3 = PyInt_Check(__pyx_v_value); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":709
 *         return ExprNodes.BoolNode(pos, value=value)
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, long):
 *         return ExprNodes.IntNode(pos, value=rep, longness="L")
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_rep) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __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":710
 *     elif isinstance(value, int):
 *         return ExprNodes.IntNode(pos, value=rep)
 *     elif isinstance(value, long):             # <<<<<<<<<<<<<<
 *         return ExprNodes.IntNode(pos, value=rep, longness="L")
 *     elif isinstance(value, float):
 */
  __pyx_t_2 = PyLong_Check(__pyx_v_value); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":711
 *         return ExprNodes.IntNode(pos, value=rep)
 *     elif isinstance(value, long):
 *         return ExprNodes.IntNode(pos, value=rep, longness="L")             # <<<<<<<<<<<<<<
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_rep) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_longness, __pyx_n_u_L) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __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":712
 *     elif isinstance(value, long):
 *         return ExprNodes.IntNode(pos, value=rep, longness="L")
 *     elif isinstance(value, float):             # <<<<<<<<<<<<<<
 *         return ExprNodes.FloatNode(pos, value=rep)
 *     elif isinstance(value, _unicode):
 */
  __pyx_t_3 = PyFloat_Check(__pyx_v_value); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":713
 *         return ExprNodes.IntNode(pos, value=rep, longness="L")
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_FloatNode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_rep) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __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":714
 *     elif isinstance(value, float):
 *         return ExprNodes.FloatNode(pos, value=rep)
 *     elif isinstance(value, _unicode):             # <<<<<<<<<<<<<<
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):
 */
  __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing__unicode;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __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":715
 *         return ExprNodes.FloatNode(pos, value=rep)
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))             # <<<<<<<<<<<<<<
 *     elif isinstance(value, _bytes):
 *         return ExprNodes.BytesNode(pos, value=BytesLiteral(value))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_UnicodeNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_value);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_value);
    __Pyx_GIVEREF(__pyx_v_value);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __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":716
 *     elif isinstance(value, _unicode):
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):             # <<<<<<<<<<<<<<
 *         return ExprNodes.BytesNode(pos, value=BytesLiteral(value))
 *     elif isinstance(value, tuple):
 */
  __pyx_t_7 = __pyx_v_6Cython_8Compiler_7Parsing__bytes;
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_t_7); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":717
 *         return ExprNodes.UnicodeNode(pos, value=EncodedString(value))
 *     elif isinstance(value, _bytes):
 *         return ExprNodes.BytesNode(pos, value=BytesLiteral(value))             # <<<<<<<<<<<<<<
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BytesNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_value);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_value);
    __Pyx_GIVEREF(__pyx_v_value);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_BytesLiteral, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":718
 *     elif isinstance(value, _bytes):
 *         return ExprNodes.BytesNode(pos, value=BytesLiteral(value))
 *     elif isinstance(value, tuple):             # <<<<<<<<<<<<<<
 *         args = [wrap_compile_time_constant(pos, arg)
 *                 for arg in value]
 */
  __pyx_t_2 = PyTuple_Check(__pyx_v_value); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":719
 *         return ExprNodes.BytesNode(pos, value=BytesLiteral(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_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_6);

      /* "Cython/Compiler/Parsing.py":720
 *     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 (PyList_CheckExact(__pyx_v_value) || PyTuple_CheckExact(__pyx_v_value)) {
        __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext;
      }
      for (;;) {
        if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_4)) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_COMPILING_IN_CPYTHON
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          #endif
        } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_4)) {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_COMPILING_IN_CPYTHON
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          #endif
        } else {
          __pyx_t_5 = __pyx_t_9(__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_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_arg, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":719
 *         return ExprNodes.BytesNode(pos, value=BytesLiteral(value))
 *     elif isinstance(value, tuple):
 *         args = [wrap_compile_time_constant(pos, arg)             # <<<<<<<<<<<<<<
 *                 for arg in value]
 *         if None not in args:
 */
        __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_wrap_compile_time_constant(__pyx_v_pos, __pyx_8genexpr1__pyx_v_arg); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_5);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_5))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":721
 *         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_3 = (__Pyx_PySequence_Contains(Py_None, __pyx_v_args, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":722
 *                 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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":725
 *         else:
 *             # error already reported
 *             return None             # <<<<<<<<<<<<<<
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 *                % (value, value.__class__.__name__))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_None);
      __pyx_r = Py_None;
      goto __pyx_L0;
    }
  }

  /* "Cython/Compiler/Parsing.py":727
 *             return None
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"
 *                % (value, value.__class__.__name__))             # <<<<<<<<<<<<<<
 *     return None
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_class); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_Invalid_type_for_compile_time_co, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":726
 *             # error already reported
 *             return None
 *     error(pos, "Invalid type for compile-time constant: %r (type %s)"             # <<<<<<<<<<<<<<
 *                % (value, value.__class__.__name__))
 *     return None
 */
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":728
 *     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":700
 * 
 * 
 * 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_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_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":731
 * 
 * 
 * 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_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_pos = NULL;
  PyObject *__pyx_v_next_kind = NULL;
  PyObject *__pyx_v_next_bytes_value = NULL;
  PyObject *__pyx_v_next_unicode_value = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cat_string_literal", 0);

  /* "Cython/Compiler/Parsing.py":735
 *     # Returns (kind, bytes_value, unicode_value)
 *     # where kind in ('b', 'c', 'u', '')
 *     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_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __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":736
 *     # where kind in ('b', 'c', 'u', '')
 *     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 = [bytes_value], [unicode_value]
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_7) {
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_9 = __pyx_t_8;
  } else {
    __pyx_t_9 = __pyx_t_7;
  }
  if (__pyx_t_9) {

    /* "Cython/Compiler/Parsing.py":737
 *     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 = [bytes_value], [unicode_value]
 *     bytes_value = unicode_value = None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_kind);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kind);
    __Pyx_GIVEREF(__pyx_v_kind);
    __Pyx_INCREF(__pyx_v_bytes_value);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_bytes_value);
    __Pyx_GIVEREF(__pyx_v_bytes_value);
    __Pyx_INCREF(__pyx_v_unicode_value);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_unicode_value);
    __Pyx_GIVEREF(__pyx_v_unicode_value);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":738
 *     if kind == 'c' or s.sy != 'BEGIN_STRING':
 *         return kind, bytes_value, unicode_value
 *     bstrings, ustrings = [bytes_value], [unicode_value]             # <<<<<<<<<<<<<<
 *     bytes_value = unicode_value = None
 *     while s.sy == 'BEGIN_STRING':
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_bytes_value);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_bytes_value);
  __Pyx_GIVEREF(__pyx_v_bytes_value);
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_unicode_value);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_unicode_value);
  __Pyx_GIVEREF(__pyx_v_unicode_value);
  __pyx_v_bstrings = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_ustrings = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":739
 *         return kind, bytes_value, unicode_value
 *     bstrings, ustrings = [bytes_value], [unicode_value]
 *     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":740
 *     bstrings, ustrings = [bytes_value], [unicode_value]
 *     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_9 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_9) break;

    /* "Cython/Compiler/Parsing.py":741
 *     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_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_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_pos, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":742
 *     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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __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_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
      index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 2; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L8_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = NULL;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L9_unpacking_done;
      __pyx_L8_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L9_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_next_kind, __pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_next_bytes_value, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_next_unicode_value, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":743
 *         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")
 *         elif next_kind != kind:
 */
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_v_next_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_9) {

      /* "Cython/Compiler/Parsing.py":744
 *         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")             # <<<<<<<<<<<<<<
 *         elif next_kind != kind:
 *             error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Cannot_concatenate_char_literal);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_kp_u_Cannot_concatenate_char_literal);
      __Pyx_GIVEREF(__pyx_kp_u_Cannot_concatenate_char_literal);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L10;
    }

    /* "Cython/Compiler/Parsing.py":745
 *         if next_kind == 'c':
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *         elif next_kind != kind:             # <<<<<<<<<<<<<<
 *             error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %
 *                   (kind, next_kind))
 */
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_next_kind, __pyx_v_kind, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_9) {

      /* "Cython/Compiler/Parsing.py":747
 *         elif next_kind != kind:
 *             error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %
 *                   (kind, next_kind))             # <<<<<<<<<<<<<<
 *         else:
 *             bstrings.append(next_bytes_value)
 */
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_kind);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_kind);
      __Pyx_GIVEREF(__pyx_v_kind);
      __Pyx_INCREF(__pyx_v_next_kind);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_next_kind);
      __Pyx_GIVEREF(__pyx_v_next_kind);

      /* "Cython/Compiler/Parsing.py":746
 *             error(pos, "Cannot concatenate char literal with another string or char literal")
 *         elif next_kind != kind:
 *             error(pos, "Cannot mix string literals of different types, expected %s'', got %s''" %             # <<<<<<<<<<<<<<
 *                   (kind, next_kind))
 *         else:
 */
      __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Cannot_mix_string_literals_of_di, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L10;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":749
 *                   (kind, next_kind))
 *         else:
 *             bstrings.append(next_bytes_value)             # <<<<<<<<<<<<<<
 *             ustrings.append(next_unicode_value)
 *     # join and rewrap the partial literals
 */
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_bstrings, __pyx_v_next_bytes_value); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":750
 *         else:
 *             bstrings.append(next_bytes_value)
 *             ustrings.append(next_unicode_value)             # <<<<<<<<<<<<<<
 *     # 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_ustrings, __pyx_v_next_unicode_value); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L10:;
  }

  /* "Cython/Compiler/Parsing.py":752
 *             ustrings.append(next_unicode_value)
 *     # 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 = BytesLiteral( StringEncoding.join_bytes(bstrings) )
 */
  __Pyx_INCREF(__pyx_v_kind);
  __pyx_t_4 = __pyx_v_kind;
  __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_9) {
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __pyx_t_7;
  } else {
    __pyx_t_8 = __pyx_t_9;
  }
  if (!__pyx_t_8) {
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __pyx_t_9;
  } else {
    __pyx_t_7 = __pyx_t_8;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = __pyx_t_7;
  if (!__pyx_t_8) {
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {
      __pyx_t_9 = (__Pyx_PySequence_Contains(Py_None, __pyx_v_bstrings, Py_NE)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_11 = __pyx_t_9;
    } else {
      __pyx_t_11 = __pyx_t_7;
    }
    __pyx_t_7 = __pyx_t_11;
  } else {
    __pyx_t_7 = __pyx_t_8;
  }
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":754
 *     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 = BytesLiteral( StringEncoding.join_bytes(bstrings) )             # <<<<<<<<<<<<<<
 *         bytes_value.encoding = s.source_encoding
 *     if kind in ('u', ''):
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_join_bytes); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_bstrings);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_bstrings);
    __Pyx_GIVEREF(__pyx_v_bstrings);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __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_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_BytesLiteral, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_bytes_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":755
 *         # Py3 enforced unicode literals are parsed as bytes/unicode combination
 *         bytes_value = BytesLiteral( StringEncoding.join_bytes(bstrings) )
 *         bytes_value.encoding = s.source_encoding             # <<<<<<<<<<<<<<
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString( u''.join([ u for u in ustrings if u is not None ]) )
 */
    __pyx_t_3 = __pyx_v_s->source_encoding;
    __Pyx_INCREF(__pyx_t_3);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_bytes_value, __pyx_n_s_encoding, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L11;
  }
  __pyx_L11:;

  /* "Cython/Compiler/Parsing.py":756
 *         bytes_value = BytesLiteral( StringEncoding.join_bytes(bstrings) )
 *         bytes_value.encoding = s.source_encoding
 *     if kind in ('u', ''):             # <<<<<<<<<<<<<<
 *         unicode_value = EncodedString( u''.join([ u for u in ustrings if u is not None ]) )
 *     return kind, bytes_value, unicode_value
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_7) {
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_11 = __pyx_t_8;
  } else {
    __pyx_t_11 = __pyx_t_7;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = (__pyx_t_11 != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":757
 *         bytes_value.encoding = s.source_encoding
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString( u''.join([ u for u in ustrings if u is not None ]) )             # <<<<<<<<<<<<<<
 *     return kind, bytes_value, unicode_value
 * 
 */
    { /* enter inner scope */
      PyObject *__pyx_8genexpr2__pyx_v_u = NULL;
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __pyx_v_ustrings; __Pyx_INCREF(__pyx_t_2); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
        #endif
        __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_u, __pyx_t_4);
        __pyx_t_4 = 0;
        __pyx_t_7 = (__pyx_8genexpr2__pyx_v_u != Py_None);
        __pyx_t_11 = (__pyx_t_7 != 0);
        if (__pyx_t_11) {
          if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_8genexpr2__pyx_v_u))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
          goto __pyx_L18;
        }
        __pyx_L18:;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_u);
      goto __pyx_L19_exit_scope;
      __pyx_L15_error:;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_u);
      goto __pyx_L1_error;
      __pyx_L19_exit_scope:;
    } /* exit inner scope */
    __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__48, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_unicode_value, __pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L12;
  }
  __pyx_L12:;

  /* "Cython/Compiler/Parsing.py":758
 *     if kind in ('u', ''):
 *         unicode_value = EncodedString( u''.join([ u for u in ustrings if u is not None ]) )
 *     return kind, bytes_value, unicode_value             # <<<<<<<<<<<<<<
 * 
 * def p_opt_string_literal(s, required_type='u'):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_kind);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_kind);
  __Pyx_GIVEREF(__pyx_v_kind);
  __Pyx_INCREF(__pyx_v_bytes_value);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_bytes_value);
  __Pyx_GIVEREF(__pyx_v_bytes_value);
  __Pyx_INCREF(__pyx_v_unicode_value);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_unicode_value);
  __Pyx_GIVEREF(__pyx_v_unicode_value);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":731
 * 
 * 
 * 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_AddTraceback("Cython.Compiler.Parsing.p_cat_string_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __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_pos);
  __Pyx_XDECREF(__pyx_v_next_kind);
  __Pyx_XDECREF(__pyx_v_next_bytes_value);
  __Pyx_XDECREF(__pyx_v_next_unicode_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":760
 *     return kind, bytes_value, unicode_value
 * 
 * def p_opt_string_literal(s, required_type='u'):             # <<<<<<<<<<<<<<
 *     if s.sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 */

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);
  CYTHON_UNUSED 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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":761
 * 
 * def p_opt_string_literal(s, required_type='u'):
 *     if s.sy == 'BEGIN_STRING':             # <<<<<<<<<<<<<<
 *         kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *         if required_type == 'u':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_BEGIN_STRING, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":762
 * def p_opt_string_literal(s, required_type='u'):
 *     if s.sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_string_literal(s, required_type)             # <<<<<<<<<<<<<<
 *         if required_type == 'u':
 *             return unicode_value
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 762; __pyx_clineno = __LINE__; goto __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":763
 *     if s.sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *         if required_type == 'u':             # <<<<<<<<<<<<<<
 *             return unicode_value
 *         elif required_type == 'b':
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_required_type, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":764
 *         kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 *         if required_type == 'u':
 *             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":765
 *         if required_type == 'u':
 *             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_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":766
 *             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;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":768
 *             return bytes_value
 *         else:
 *             s.error("internal parser configuration error")             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __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;
    }
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":770
 *             s.error("internal parser configuration error")
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * def check_for_non_ascii_characters(string):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":760
 *     return kind, bytes_value, unicode_value
 * 
 * def p_opt_string_literal(s, required_type='u'):             # <<<<<<<<<<<<<<
 *     if s.sy == 'BEGIN_STRING':
 *         kind, bytes_value, unicode_value = p_string_literal(s, required_type)
 */

  /* 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_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":772
 *         return None
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_for_non_ascii_characters", 0);

  /* "Cython/Compiler/Parsing.py":773
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __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":774
 * 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 >= 128) != 0);
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":775
 *     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;
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":776
 *         if c >= u'\x80':
 *             return True
 *     return False             # <<<<<<<<<<<<<<
 * 
 * def p_string_literal(s, kind_override=None):
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":772
 *         return None
 * 
 * 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);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":778
 *     return False
 * 
 * def p_string_literal(s, kind_override=None):             # <<<<<<<<<<<<<<
 *     # A single string or char literal.  Returns (kind, bvalue, uvalue)
 *     # where kind in ('b', 'c', 'u', '').  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 = 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;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  Py_UCS4 __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *(*__pyx_t_18)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":787
 * 
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":788
 *     # 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":789
 *     pos = s.position()
 *     is_raw = False
 *     is_python3_source = s.context.language_level >= 3             # <<<<<<<<<<<<<<
 *     has_non_ASCII_literal_characters = False
 *     kind = s.systring[:1].lower()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_is_python3_source = __pyx_t_3;

  /* "Cython/Compiler/Parsing.py":790
 *     is_raw = False
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ASCII_literal_characters = False             # <<<<<<<<<<<<<<
 *     kind = s.systring[:1].lower()
 *     if kind == 'r':
 */
  __pyx_v_has_non_ASCII_literal_characters = 0;

  /* "Cython/Compiler/Parsing.py":791
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ASCII_literal_characters = False
 *     kind = s.systring[:1].lower()             # <<<<<<<<<<<<<<
 *     if kind == 'r':
 *         # Py3 allows both 'br' and 'rb' as prefix
 */
  __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_s->systring, 0, 1, NULL, NULL, &__pyx_slice__50, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_kind = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":792
 *     has_non_ASCII_literal_characters = False
 *     kind = s.systring[:1].lower()
 *     if kind == 'r':             # <<<<<<<<<<<<<<
 *         # Py3 allows both 'br' and 'rb' as prefix
 *         if s.systring[1:2].lower() == 'b':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_r, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":794
 *     if kind == 'r':
 *         # Py3 allows both 'br' and 'rb' as prefix
 *         if s.systring[1:2].lower() == 'b':             # <<<<<<<<<<<<<<
 *             kind = 'b'
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_s->systring, 1, 2, NULL, NULL, &__pyx_slice__51, 1, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":795
 *         # Py3 allows both 'br' and 'rb' as prefix
 *         if s.systring[1:2].lower() == 'b':
 *             kind = 'b'             # <<<<<<<<<<<<<<
 *         else:
 *             kind = ''
 */
      __Pyx_INCREF(__pyx_n_u_b);
      __Pyx_DECREF_SET(__pyx_v_kind, __pyx_n_u_b);
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":797
 *             kind = 'b'
 *         else:
 *             kind = ''             # <<<<<<<<<<<<<<
 *         is_raw = True
 *     elif kind in 'ub':
 */
      __Pyx_INCREF(__pyx_kp_u__48);
      __Pyx_DECREF_SET(__pyx_v_kind, __pyx_kp_u__48);
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":798
 *         else:
 *             kind = ''
 *         is_raw = True             # <<<<<<<<<<<<<<
 *     elif kind in 'ub':
 *         is_raw = s.systring[1:2].lower() == 'r'
 */
    __pyx_v_is_raw = 1;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":799
 *             kind = ''
 *         is_raw = True
 *     elif kind in 'ub':             # <<<<<<<<<<<<<<
 *         is_raw = s.systring[1:2].lower() == 'r'
 *     elif kind != 'c':
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Contains(__pyx_v_kind, __pyx_n_u_ub, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":800
 *         is_raw = True
 *     elif kind in 'ub':
 *         is_raw = s.systring[1:2].lower() == 'r'             # <<<<<<<<<<<<<<
 *     elif kind != 'c':
 *         kind = ''
 */
    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_s->systring, 1, 2, NULL, NULL, &__pyx_slice__52, 1, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_n_u_r, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_is_raw = __pyx_t_4;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":801
 *     elif kind in 'ub':
 *         is_raw = s.systring[1:2].lower() == 'r'
 *     elif kind != 'c':             # <<<<<<<<<<<<<<
 *         kind = ''
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_c, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":802
 *         is_raw = s.systring[1:2].lower() == 'r'
 *     elif kind != 'c':
 *         kind = ''             # <<<<<<<<<<<<<<
 *     if kind == '' and kind_override is None and Future.unicode_literals in s.context.future_directives:
 *         chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 */
    __Pyx_INCREF(__pyx_kp_u__48);
    __Pyx_DECREF_SET(__pyx_v_kind, __pyx_kp_u__48);
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":803
 *     elif kind != 'c':
 *         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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {
    __pyx_t_3 = (__pyx_v_kind_override == Py_None);
    if (__pyx_t_3) {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_n_s_unicode_literals); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_t_1, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __pyx_t_5;
    } else {
      __pyx_t_6 = __pyx_t_3;
    }
    __pyx_t_3 = __pyx_t_6;
  } else {
    __pyx_t_3 = __pyx_t_4;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":804
 *         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'
 *     else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_StrLiteralBuilder); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_s->source_encoding);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s->source_encoding);
    __Pyx_GIVEREF(__pyx_v_s->source_encoding);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __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_v_chars = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":805
 *     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);
    goto __pyx_L5;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":807
 *         kind = 'u'
 *     else:
 *         if kind_override is not None and kind_override in 'ub':             # <<<<<<<<<<<<<<
 *             kind = kind_override
 *         if kind == 'u':
 */
    __pyx_t_3 = (__pyx_v_kind_override != Py_None);
    if ((__pyx_t_3 != 0)) {
      __pyx_t_4 = (__Pyx_PyUnicode_Contains(__pyx_v_kind_override, __pyx_n_u_ub, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = (__pyx_t_4 != 0);
    } else {
      __pyx_t_6 = (__pyx_t_3 != 0);
    }
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":808
 *     else:
 *         if kind_override is not None and kind_override in 'ub':
 *             kind = kind_override             # <<<<<<<<<<<<<<
 *         if kind == 'u':
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 */
      __Pyx_INCREF(__pyx_v_kind_override);
      __Pyx_DECREF_SET(__pyx_v_kind, __pyx_v_kind_override);
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":809
 *         if kind_override is not None and kind_override in 'ub':
 *             kind = kind_override
 *         if kind == 'u':             # <<<<<<<<<<<<<<
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':
 */
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":810
 *             kind = kind_override
 *         if kind == 'u':
 *             chars = StringEncoding.UnicodeLiteralBuilder()             # <<<<<<<<<<<<<<
 *         elif kind == '':
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_UnicodeLiteralBuilder); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_chars = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7;
    }

    /* "Cython/Compiler/Parsing.py":811
 *         if kind == 'u':
 *             chars = StringEncoding.UnicodeLiteralBuilder()
 *         elif kind == '':             # <<<<<<<<<<<<<<
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         else:
 */
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":812
 *             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_filename = __pyx_f[0]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_s->source_encoding);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_s->source_encoding);
      __Pyx_GIVEREF(__pyx_v_s->source_encoding);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_chars = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L7;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":814
 *             chars = StringEncoding.StrLiteralBuilder(s.source_encoding)
 *         else:
 *             chars = StringEncoding.BytesLiteralBuilder(s.source_encoding)             # <<<<<<<<<<<<<<
 * 
 *     while 1:
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_BytesLiteralBuilder); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_s->source_encoding);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_s->source_encoding);
      __Pyx_GIVEREF(__pyx_v_s->source_encoding);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_chars = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_L7:;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":816
 *             chars = StringEncoding.BytesLiteralBuilder(s.source_encoding)
 * 
 *     while 1:             # <<<<<<<<<<<<<<
 *         s.next()
 *         sy = s.sy
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":817
 * 
 *     while 1:
 *         s.next()             # <<<<<<<<<<<<<<
 *         sy = s.sy
 *         systr = 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_filename = __pyx_f[0]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":818
 *     while 1:
 *         s.next()
 *         sy = s.sy             # <<<<<<<<<<<<<<
 *         systr = s.systring
 *         #print "p_string_literal: sy =", sy, repr(s.systring) ###
 */
    __pyx_t_1 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sy, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":819
 *         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_filename = __pyx_f[0]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_systr, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":821
 *         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_6 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_CHARS, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":822
 *         #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_8 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_v_systr); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":823
 *         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':
 */
      if ((__pyx_v_is_python3_source != 0)) {
        __pyx_t_6 = ((!(__pyx_v_has_non_ASCII_literal_characters != 0)) != 0);
        if (__pyx_t_6) {
          __pyx_t_3 = (__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(__pyx_v_systr) != 0);
          __pyx_t_4 = __pyx_t_3;
        } else {
          __pyx_t_4 = __pyx_t_6;
        }
        __pyx_t_6 = __pyx_t_4;
      } else {
        __pyx_t_6 = (__pyx_v_is_python3_source != 0);
      }
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":824
 *             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;
        goto __pyx_L11;
      }
      __pyx_L11:;
      goto __pyx_L10;
    }

    /* "Cython/Compiler/Parsing.py":825
 *             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_6 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_ESCAPE, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":826
 *                 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_6 = (__pyx_v_is_raw != 0);
      if (__pyx_t_6) {

        /* "Cython/Compiler/Parsing.py":827
 *         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_8 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_v_systr); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "Cython/Compiler/Parsing.py":828
 *             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_v_is_python3_source != 0)) {

          /* "Cython/Compiler/Parsing.py":829
 *                 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_6 = ((!(__pyx_v_has_non_ASCII_literal_characters != 0)) != 0);
          if (__pyx_t_6) {
            __pyx_t_4 = (__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(__pyx_v_systr) != 0);
            __pyx_t_3 = __pyx_t_4;
          } else {
            __pyx_t_3 = __pyx_t_6;
          }
          __pyx_t_6 = __pyx_t_3;
        } else {
          __pyx_t_6 = (__pyx_v_is_python3_source != 0);
        }
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":830
 *                 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;
          goto __pyx_L13;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":832
 *                     has_non_ASCII_literal_characters = True
 *             else:
 *                 c = systr[1]             # <<<<<<<<<<<<<<
 *                 if c in u"01234567":
 *                     chars.append_charval( int(systr[1:], 8) )
 */
        __pyx_t_9 = __Pyx_GetItemInt_Unicode(__pyx_v_systr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_9 == (Py_UCS4)-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
        __pyx_v_c = __pyx_t_9;

        /* "Cython/Compiler/Parsing.py":833
 *             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_6 = 1;
          break;
          default:
          __pyx_t_6 = 0;
          break;
        }
        __pyx_t_3 = (__pyx_t_6 != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":834
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          __pyx_t_7 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_int_8);
          PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_8);
          __Pyx_GIVEREF(__pyx_int_8);
          __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
          goto __pyx_L14;
        }

        /* "Cython/Compiler/Parsing.py":835
 *                 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_6 = (__pyx_t_3 != 0);
        if (__pyx_t_6) {

          /* "Cython/Compiler/Parsing.py":836
 *                     chars.append_charval( int(systr[1:], 8) )
 *                 elif c in u"'\"\\":
 *                     chars.append(c)             # <<<<<<<<<<<<<<
 *                 elif c in u"abfnrtv":
 *                     chars.append(
 */
          __pyx_t_7 = PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          goto __pyx_L14;
        }

        /* "Cython/Compiler/Parsing.py":837
 *                 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 102:
          case 110:
          case 114:
          case 116:
          case 118:
          __pyx_t_6 = 1;
          break;
          default:
          __pyx_t_6 = 0;
          break;
        }
        __pyx_t_3 = (__pyx_t_6 != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":839
 *                 elif c in u"abfnrtv":
 *                     chars.append(
 *                         StringEncoding.char_from_escape_sequence(systr))             # <<<<<<<<<<<<<<
 *                 elif c == u'\n':
 *                     pass
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_n_s_char_from_escape_sequence); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_INCREF(__pyx_v_systr);
          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_systr);
          __Pyx_GIVEREF(__pyx_v_systr);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "Cython/Compiler/Parsing.py":838
 *                     chars.append(c)
 *                 elif c in u"abfnrtv":
 *                     chars.append(             # <<<<<<<<<<<<<<
 *                         StringEncoding.char_from_escape_sequence(systr))
 *                 elif c == u'\n':
 */
          __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L14;
        }

        /* "Cython/Compiler/Parsing.py":840
 *                     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_L14;
        }

        /* "Cython/Compiler/Parsing.py":842
 *                 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 == 120) != 0);
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":843
 *                     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_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          __pyx_t_10 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_systr); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_3 = ((__pyx_t_10 == 4) != 0);
          if (__pyx_t_3) {

            /* "Cython/Compiler/Parsing.py":844
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            }
            __pyx_t_2 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_INCREF(__pyx_int_16);
            PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_16);
            __Pyx_GIVEREF(__pyx_int_16);
            __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            goto __pyx_L15;
          }
          /*else*/ {

            /* "Cython/Compiler/Parsing.py":846
 *                         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', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 */
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_Invalid_hex_escape_s, __pyx_v_systr); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
            __Pyx_GIVEREF(__pyx_t_7);
            __pyx_t_7 = 0;
            __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);

            /* "Cython/Compiler/Parsing.py":847
 *                     else:
 *                         s.error("Invalid hex escape '%s'" % systr,
 *                                 fatal=False)             # <<<<<<<<<<<<<<
 *                 elif c in u'NUu' and kind in ('u', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 *                     chrval = -1
 */
            if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

            /* "Cython/Compiler/Parsing.py":846
 *                         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', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 */
            __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __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_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          }
          __pyx_L15:;
          goto __pyx_L14;
        }

        /* "Cython/Compiler/Parsing.py":848
 *                         s.error("Invalid hex escape '%s'" % systr,
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}             # <<<<<<<<<<<<<<
 *                     chrval = -1
 *                     if c == u'N':
 */
        switch (__pyx_v_c) {
          case 78:
          case 85:
          case 117:
          __pyx_t_3 = 1;
          break;
          default:
          __pyx_t_3 = 0;
          break;
        }
        __pyx_t_6 = (__pyx_t_3 != 0);
        if (__pyx_t_6) {
          __Pyx_INCREF(__pyx_v_kind);
          __pyx_t_11 = __pyx_v_kind;
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          if (!__pyx_t_3) {
            __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __pyx_t_5 = __pyx_t_4;
          } else {
            __pyx_t_5 = __pyx_t_3;
          }
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_3 = (__pyx_t_5 != 0);
          __pyx_t_5 = __pyx_t_3;
        } else {
          __pyx_t_5 = __pyx_t_6;
        }
        if (__pyx_t_5) {

          /* "Cython/Compiler/Parsing.py":849
 *                                 fatal=False)
 *                 elif c in u'NUu' and kind in ('u', ''):   # \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":850
 *                 elif c in u'NUu' and kind in ('u', ''):   # \uxxxx, \Uxxxxxxxx, \N{...}
 *                     chrval = -1
 *                     if c == u'N':             # <<<<<<<<<<<<<<
 *                         try:
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 */
          __pyx_t_5 = ((__pyx_v_c == 78) != 0);
          if (__pyx_t_5) {

            /* "Cython/Compiler/Parsing.py":851
 *                     chrval = -1
 *                     if c == u'N':
 *                         try:             # <<<<<<<<<<<<<<
 *                             chrval = ord(lookup_unicodechar(systr[3:-1]))
 *                         except KeyError:
 */
            {
              __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
              __Pyx_XGOTREF(__pyx_t_12);
              __Pyx_XGOTREF(__pyx_t_13);
              __Pyx_XGOTREF(__pyx_t_14);
              /*try:*/ {

                /* "Cython/Compiler/Parsing.py":852
 *                     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_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                }
                __pyx_t_11 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 3, -1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_7);
                PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_11);
                __Pyx_GIVEREF(__pyx_t_11);
                __pyx_t_11 = 0;
                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar, __pyx_t_7, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_7);
                PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_11);
                __Pyx_GIVEREF(__pyx_t_11);
                __pyx_t_11 = 0;
                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_ord, __pyx_t_7, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_DECREF_SET(__pyx_v_chrval, __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;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L24_try_end;
              __pyx_L17_error:;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;

              /* "Cython/Compiler/Parsing.py":853
 *                         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_15 = PyErr_ExceptionMatches(__pyx_builtin_KeyError);
              if (__pyx_t_15) {
                __Pyx_AddTraceback("Cython.Compiler.Parsing.p_string_literal", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_7, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_GOTREF(__pyx_t_1);

                /* "Cython/Compiler/Parsing.py":854
 *                             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_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_2);

                /* "Cython/Compiler/Parsing.py":855
 *                         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_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                }
                __pyx_t_16 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 3, -1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_16);
                __pyx_t_17 = PyObject_Repr(__pyx_t_16); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_lstrip); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

                /* "Cython/Compiler/Parsing.py":854
 *                             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_16 = PyUnicode_Format(__pyx_kp_u_Unknown_Unicode_character_name_s, __pyx_t_17); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_17);
                PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16);
                __Pyx_GIVEREF(__pyx_t_16);
                __pyx_t_16 = 0;
                __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_17, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                goto __pyx_L18_exception_handled;
              }
              goto __pyx_L19_except_error;
              __pyx_L19_except_error:;
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
              goto __pyx_L1_error;
              __pyx_L18_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
              __pyx_L24_try_end:;
            }
            goto __pyx_L16;
          }

          /* "Cython/Compiler/Parsing.py":856
 *                             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_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          __pyx_t_10 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_systr); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_5 = ((__pyx_t_10 == 6) != 0);
          if (!__pyx_t_5) {
            __pyx_t_6 = ((__pyx_t_10 == 10) != 0);
            __pyx_t_3 = __pyx_t_6;
          } else {
            __pyx_t_3 = __pyx_t_5;
          }
          __pyx_t_5 = (__pyx_t_3 != 0);
          if (__pyx_t_5) {

            /* "Cython/Compiler/Parsing.py":857
 *                                     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_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            }
            __pyx_t_1 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_INCREF(__pyx_int_16);
            PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_16);
            __Pyx_GIVEREF(__pyx_int_16);
            __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF_SET(__pyx_v_chrval, __pyx_t_1);
            __pyx_t_1 = 0;

            /* "Cython/Compiler/Parsing.py":858
 *                     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_1 = PyObject_RichCompare(__pyx_v_chrval, __pyx_int_1114111, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_5) {

              /* "Cython/Compiler/Parsing.py":859
 *                         chrval = int(systr[2:], 16)
 *                         if chrval > 1114111: # sys.maxunicode:
 *                             s.error("Invalid unicode escape '%s'" % systr)             # <<<<<<<<<<<<<<
 *                             chrval = -1
 *                     else:
 */
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_Invalid_unicode_escape_s, __pyx_v_systr); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              __Pyx_GOTREF(__pyx_t_11);
              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

              /* "Cython/Compiler/Parsing.py":860
 *                         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);
              goto __pyx_L27;
            }
            __pyx_L27:;
            goto __pyx_L16;
          }
          /*else*/ {

            /* "Cython/Compiler/Parsing.py":862
 *                             chrval = -1
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,             # <<<<<<<<<<<<<<
 *                                 fatal=False)
 *                     if chrval >= 0:
 */
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_11 = PyUnicode_Format(__pyx_kp_u_Invalid_unicode_escape_s, __pyx_v_systr); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11);
            __Pyx_GIVEREF(__pyx_t_11);
            __pyx_t_11 = 0;
            __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_11);

            /* "Cython/Compiler/Parsing.py":863
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,
 *                                 fatal=False)             # <<<<<<<<<<<<<<
 *                     if chrval >= 0:
 *                         chars.append_uescape(chrval, systr)
 */
            if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

            /* "Cython/Compiler/Parsing.py":862
 *                             chrval = -1
 *                     else:
 *                         s.error("Invalid unicode escape '%s'" % systr,             # <<<<<<<<<<<<<<
 *                                 fatal=False)
 *                     if chrval >= 0:
 */
            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          }
          __pyx_L16:;

          /* "Cython/Compiler/Parsing.py":864
 *                         s.error("Invalid unicode escape '%s'" % systr,
 *                                 fatal=False)
 *                     if chrval >= 0:             # <<<<<<<<<<<<<<
 *                         chars.append_uescape(chrval, systr)
 *                 else:
 */
          __pyx_t_16 = PyObject_RichCompare(__pyx_v_chrval, __pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (__pyx_t_5) {

            /* "Cython/Compiler/Parsing.py":865
 *                                 fatal=False)
 *                     if chrval >= 0:
 *                         chars.append_uescape(chrval, systr)             # <<<<<<<<<<<<<<
 *                 else:
 *                     chars.append(u'\\' + systr[1:])
 */
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_append_uescape); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_INCREF(__pyx_v_chrval);
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_chrval);
            __Pyx_GIVEREF(__pyx_v_chrval);
            __Pyx_INCREF(__pyx_v_systr);
            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_systr);
            __Pyx_GIVEREF(__pyx_v_systr);
            __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            goto __pyx_L28;
          }
          __pyx_L28:;
          goto __pyx_L14;
        }
        /*else*/ {

          /* "Cython/Compiler/Parsing.py":867
 *                         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):
 */
          if (unlikely(__pyx_v_systr == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          __pyx_t_1 = __Pyx_PyUnicode_Substring(__pyx_v_systr, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_11 = __Pyx_PyUnicode_Concat(__pyx_kp_u__54, __pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_t_11); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

          /* "Cython/Compiler/Parsing.py":868
 *                 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_v_is_python3_source != 0)) {

            /* "Cython/Compiler/Parsing.py":869
 *                     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_5 = ((!(__pyx_v_has_non_ASCII_literal_characters != 0)) != 0);
            if (__pyx_t_5) {
              __pyx_t_3 = (__pyx_f_6Cython_8Compiler_7Parsing_check_for_non_ascii_characters(__pyx_v_systr) != 0);
              __pyx_t_6 = __pyx_t_3;
            } else {
              __pyx_t_6 = __pyx_t_5;
            }
            __pyx_t_5 = __pyx_t_6;
          } else {
            __pyx_t_5 = (__pyx_v_is_python3_source != 0);
          }
          if (__pyx_t_5) {

            /* "Cython/Compiler/Parsing.py":870
 *                     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;
            goto __pyx_L29;
          }
          __pyx_L29:;
        }
        __pyx_L14:;
      }
      __pyx_L12:;
      goto __pyx_L10;
    }

    /* "Cython/Compiler/Parsing.py":871
 *                            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_5 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":872
 *                         has_non_ASCII_literal_characters = True
 *         elif sy == 'NEWLINE':
 *             chars.append(u'\n')             # <<<<<<<<<<<<<<
 *         elif sy == 'END_STRING':
 *             break
 */
      __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_chars, __pyx_kp_u__55); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L10;
    }

    /* "Cython/Compiler/Parsing.py":873
 *         elif sy == 'NEWLINE':
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':             # <<<<<<<<<<<<<<
 *             break
 *         elif sy == 'EOF':
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_END_STRING, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":874
 *             chars.append(u'\n')
 *         elif sy == 'END_STRING':
 *             break             # <<<<<<<<<<<<<<
 *         elif sy == 'EOF':
 *             s.error("Unclosed string literal", pos=pos)
 */
      goto __pyx_L9_break;
    }

    /* "Cython/Compiler/Parsing.py":875
 *         elif sy == 'END_STRING':
 *             break
 *         elif sy == 'EOF':             # <<<<<<<<<<<<<<
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_sy, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":876
 *             break
 *         elif sy == 'EOF':
 *             s.error("Unclosed string literal", pos=pos)             # <<<<<<<<<<<<<<
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %
 */
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pos, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__56, __pyx_t_1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      goto __pyx_L10;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":878
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %             # <<<<<<<<<<<<<<
 *                     (sy, s.systring))
 * 
 */
      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_16);

      /* "Cython/Compiler/Parsing.py":879
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %
 *                     (sy, s.systring))             # <<<<<<<<<<<<<<
 * 
 *     if kind == 'c':
 */
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_sy);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_sy);
      __Pyx_GIVEREF(__pyx_v_sy);
      __Pyx_INCREF(__pyx_v_s->systring);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_s->systring);
      __Pyx_GIVEREF(__pyx_v_s->systring);

      /* "Cython/Compiler/Parsing.py":878
 *             s.error("Unclosed string literal", pos=pos)
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %             # <<<<<<<<<<<<<<
 *                     (sy, s.systring))
 * 
 */
      __pyx_t_11 = PyUnicode_Format(__pyx_kp_u_Unexpected_token_r_r_in_string_l, __pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    }
    __pyx_L10:;
  }
  __pyx_L9_break:;

  /* "Cython/Compiler/Parsing.py":881
 *                     (sy, s.systring))
 * 
 *     if kind == 'c':             # <<<<<<<<<<<<<<
 *         unicode_value = None
 *         bytes_value = chars.getchar()
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":882
 * 
 *     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":883
 *     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_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_getchar); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_v_bytes_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":884
 *         unicode_value = None
 *         bytes_value = chars.getchar()
 *         if len(bytes_value) != 1:             # <<<<<<<<<<<<<<
 *             error(pos, u"invalid character literal: %r" % bytes_value)
 *     else:
 */
    __pyx_t_10 = PyObject_Length(__pyx_v_bytes_value); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = ((__pyx_t_10 != 1) != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":885
 *         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_1 = PyUnicode_Format(__pyx_kp_u_invalid_character_literal_r, __pyx_v_bytes_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L31;
    }
    __pyx_L31:;
    goto __pyx_L30;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":887
 *             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
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_chars, __pyx_n_s_getstrings); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {
      PyObject* sequence = __pyx_t_11;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_16 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_16 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_16);
      #else
      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_16 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_16);
      #endif
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_18 = Py_TYPE(__pyx_t_7)->tp_iternext;
      index = 0; __pyx_t_1 = __pyx_t_18(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L32_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 1; __pyx_t_16 = __pyx_t_18(__pyx_t_7); if (unlikely(!__pyx_t_16)) goto __pyx_L32_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_16);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_18(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_18 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L33_unpacking_done;
      __pyx_L32_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_18 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L33_unpacking_done:;
    }
    __pyx_v_bytes_value = __pyx_t_1;
    __pyx_t_1 = 0;
    __pyx_v_unicode_value = __pyx_t_16;
    __pyx_t_16 = 0;

    /* "Cython/Compiler/Parsing.py":888
 *     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 != 'u':
 */
    if ((__pyx_v_is_python3_source != 0)) {
      __pyx_t_5 = (__pyx_v_has_non_ASCII_literal_characters != 0);
    } else {
      __pyx_t_5 = (__pyx_v_is_python3_source != 0);
    }
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":890
 *         if is_python3_source and has_non_ASCII_literal_characters:
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind != 'u':             # <<<<<<<<<<<<<<
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)
 */
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_u, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":891
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind != 'u':
 *                 s.error("bytes can only contain ASCII literal characters.",             # <<<<<<<<<<<<<<
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 */
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_16);

        /* "Cython/Compiler/Parsing.py":892
 *             if kind != 'u':
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)             # <<<<<<<<<<<<<<
 *             bytes_value = None
 *     s.next()
 */
        if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_pos, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "Cython/Compiler/Parsing.py":891
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind != 'u':
 *                 s.error("bytes can only contain ASCII literal characters.",             # <<<<<<<<<<<<<<
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 */
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__57, __pyx_t_16); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L35;
      }
      __pyx_L35:;

      /* "Cython/Compiler/Parsing.py":893
 *                 s.error("bytes can only contain ASCII literal characters.",
 *                         pos=pos, fatal=False)
 *             bytes_value = None             # <<<<<<<<<<<<<<
 *     s.next()
 *     return (kind, bytes_value, unicode_value)
 */
      __Pyx_INCREF(Py_None);
      __Pyx_DECREF_SET(__pyx_v_bytes_value, Py_None);
      goto __pyx_L34;
    }
    __pyx_L34:;
  }
  __pyx_L30:;

  /* "Cython/Compiler/Parsing.py":894
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 *     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_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":895
 *             bytes_value = None
 *     s.next()
 *     return (kind, bytes_value, unicode_value)             # <<<<<<<<<<<<<<
 * 
 * # list_display      ::=      "[" [listmaker] "]"
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_kind);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kind);
  __Pyx_GIVEREF(__pyx_v_kind);
  __Pyx_INCREF(__pyx_v_bytes_value);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_bytes_value);
  __Pyx_GIVEREF(__pyx_v_bytes_value);
  __Pyx_INCREF(__pyx_v_unicode_value);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_unicode_value);
  __Pyx_GIVEREF(__pyx_v_unicode_value);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":778
 *     return False
 * 
 * def p_string_literal(s, kind_override=None):             # <<<<<<<<<<<<<<
 *     # A single string or char literal.  Returns (kind, bvalue, uvalue)
 *     # where kind in ('b', 'c', 'u', '').  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_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __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);
  __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":903
 * # 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_simple_expr_list __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_list_maker", 0);

  /* "Cython/Compiler/Parsing.py":905
 * 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_filename = __pyx_f[0]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":906
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":907
 *     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__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":908
 *     s.next()
 *     if s.sy == ']':
 *         s.expect(']')             # <<<<<<<<<<<<<<
 *         return ExprNodes.ListNode(pos, args = [])
 *     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__40, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":909
 *     if s.sy == ']':
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args = [])             # <<<<<<<<<<<<<<
 *     expr = p_test(s)
 *     if s.sy == 'for':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __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":910
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args = [])
 *     expr = p_test(s)             # <<<<<<<<<<<<<<
 *     if s.sy == 'for':
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 */
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_expr = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":911
 *         return ExprNodes.ListNode(pos, args = [])
 *     expr = p_test(s)
 *     if s.sy == 'for':             # <<<<<<<<<<<<<<
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)
 *         loop = p_comp_for(s, append)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":912
 *     expr = p_test(s)
 *     if s.sy == 'for':
 *         append = ExprNodes.ComprehensionAppendNode(pos, expr=expr)             # <<<<<<<<<<<<<<
 *         loop = p_comp_for(s, append)
 *         s.expect(']')
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ComprehensionAppendNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_expr, __pyx_v_expr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __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_append = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":913
 *     if s.sy == 'for':
 *         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_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_loop = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":914
 *         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__40, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":915
 *         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_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":916
 *         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_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":915
 *         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_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":916
 *         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)
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_loop, __pyx_v_loop) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_append, __pyx_v_append) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_list_type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_type, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":918
 *             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)             # <<<<<<<<<<<<<<
 *     else:
 *         if s.sy == ',':
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_has_local_scope, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":915
 *         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_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __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_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":920
 *             has_local_scope = s.context.language_level >= 3)
 *     else:
 *         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_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":921
 *     else:
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             exprs = p_simple_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_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":922
 *         if s.sy == ',':
 *             s.next()
 *             exprs = p_simple_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_simple_expr_list(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_v_exprs = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":924
 *             exprs = p_simple_expr_list(s, expr)
 *         else:
 *             exprs = [expr]             # <<<<<<<<<<<<<<
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args = exprs)
 */
      __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_expr);
      PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_expr);
      __Pyx_GIVEREF(__pyx_v_expr);
      __pyx_v_exprs = __pyx_t_6;
      __pyx_t_6 = 0;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":925
 *         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__40, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":926
 *             exprs = [expr]
 *         s.expect(']')
 *         return ExprNodes.ListNode(pos, args = exprs)             # <<<<<<<<<<<<<<
 * 
 * def p_comp_iter(s, body):
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_exprs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __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_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":903
 * # 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":928
 *         return ExprNodes.ListNode(pos, args = exprs)
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_comp_iter", 0);

  /* "Cython/Compiler/Parsing.py":929
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":930
 * 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_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":931
 *     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_filename = __pyx_f[0]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":932
 *         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_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":935
 *     else:
 *         # insert the 'append' operation into the loop
 *         return body             # <<<<<<<<<<<<<<
 * 
 * def p_comp_for(s, body):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_body);
    __pyx_r = __pyx_v_body;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":928
 *         return ExprNodes.ListNode(pos, args = exprs)
 * 
 * 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":937
 *         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;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_comp_for", 0);

  /* "Cython/Compiler/Parsing.py":939
 * 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_filename = __pyx_f[0]; __pyx_lineno = 939; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":940
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":941
 *     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_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_kw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":942
 *     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_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __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":943
 *     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_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  if (unlikely(__pyx_v_kw == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_t_1 = __pyx_v_kw;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __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_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":937
 *         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_XDECREF(__pyx_t_5);
  __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":945
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_comp_if", 0);

  /* "Cython/Compiler/Parsing.py":947
 * 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_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":948
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":949
 *     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_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_test = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":950
 *     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_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":951
 *     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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_IfClauseNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_condition, __pyx_v_test) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":952
 *     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_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":951
 *     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_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_if_clauses, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":953
 *         if_clauses = [Nodes.IfClauseNode(pos, condition = test,
 *                                          body = p_comp_iter(s, body))],
 *         else_clause = None )             # <<<<<<<<<<<<<<
 * 
 * #dictmaker: test ':' test (',' test ':' test)* [',']
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":950
 *     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_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __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":945
 *     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":957
 * #dictmaker: test ':' test (',' test ':' test)* [',']
 * 
 * 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_item = NULL;
  PyObject *__pyx_v_values = NULL;
  PyObject *__pyx_v_append = NULL;
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_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;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_dict_or_set_maker", 0);

  /* "Cython/Compiler/Parsing.py":959
 * 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_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":960
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":961
 *     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__58, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":962
 *     s.next()
 *     if s.sy == '}':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return ExprNodes.DictNode(pos, key_value_pairs = [])
 *     item = 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_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":963
 *     if s.sy == '}':
 *         s.next()
 *         return ExprNodes.DictNode(pos, key_value_pairs = [])             # <<<<<<<<<<<<<<
 *     item = p_test(s)
 *     if s.sy == ',' or s.sy == '}':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __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":964
 *         s.next()
 *         return ExprNodes.DictNode(pos, key_value_pairs = [])
 *     item = p_test(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ',' or s.sy == '}':
 *         # set literal
 */
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_item = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":965
 *         return ExprNodes.DictNode(pos, key_value_pairs = [])
 *     item = p_test(s)
 *     if s.sy == ',' or s.sy == '}':             # <<<<<<<<<<<<<<
 *         # set literal
 *         values = [item]
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__58, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __pyx_t_6;
  } else {
    __pyx_t_7 = __pyx_t_2;
  }
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":967
 *     if s.sy == ',' or s.sy == '}':
 *         # set literal
 *         values = [item]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_item);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_item);
    __Pyx_GIVEREF(__pyx_v_item);
    __pyx_v_values = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":968
 *         # set literal
 *         values = [item]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == '}':
 */
    while (1) {
      __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_7) break;

      /* "Cython/Compiler/Parsing.py":969
 *         values = [item]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == '}':
 *                 break
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":970
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy == '}':             # <<<<<<<<<<<<<<
 *                 break
 *             values.append( p_test(s) )
 */
      __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__58, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":971
 *             s.next()
 *             if s.sy == '}':
 *                 break             # <<<<<<<<<<<<<<
 *             values.append( p_test(s) )
 *         s.expect('}')
 */
        goto __pyx_L6_break;
      }

      /* "Cython/Compiler/Parsing.py":972
 *             if s.sy == '}':
 *                 break
 *             values.append( p_test(s) )             # <<<<<<<<<<<<<<
 *         s.expect('}')
 *         return ExprNodes.SetNode(pos, args=values)
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_values, __pyx_t_5); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L6_break:;

    /* "Cython/Compiler/Parsing.py":973
 *                 break
 *             values.append( p_test(s) )
 *         s.expect('}')             # <<<<<<<<<<<<<<
 *         return ExprNodes.SetNode(pos, args=values)
 *     elif s.sy == 'for':
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__58, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":974
 *             values.append( p_test(s) )
 *         s.expect('}')
 *         return ExprNodes.SetNode(pos, args=values)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'for':
 *         # set comprehension
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SetNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_values) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":975
 *         s.expect('}')
 *         return ExprNodes.SetNode(pos, args=values)
 *     elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *         # set comprehension
 *         append = ExprNodes.ComprehensionAppendNode(
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":977
 *     elif s.sy == 'for':
 *         # set comprehension
 *         append = ExprNodes.ComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *             item.pos, expr=item)
 *         loop = p_comp_for(s, append)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ComprehensionAppendNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":978
 *         # set comprehension
 *         append = ExprNodes.ComprehensionAppendNode(
 *             item.pos, expr=item)             # <<<<<<<<<<<<<<
 *         loop = p_comp_for(s, append)
 *         s.expect('}')
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "Cython/Compiler/Parsing.py":977
 *     elif s.sy == 'for':
 *         # set comprehension
 *         append = ExprNodes.ComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *             item.pos, expr=item)
 *         loop = p_comp_for(s, append)
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "Cython/Compiler/Parsing.py":978
 *         # set comprehension
 *         append = ExprNodes.ComprehensionAppendNode(
 *             item.pos, expr=item)             # <<<<<<<<<<<<<<
 *         loop = p_comp_for(s, append)
 *         s.expect('}')
 */
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_expr, __pyx_v_item) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":977
 *     elif s.sy == 'for':
 *         # set comprehension
 *         append = ExprNodes.ComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *             item.pos, expr=item)
 *         loop = p_comp_for(s, append)
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __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_append = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":979
 *         append = ExprNodes.ComprehensionAppendNode(
 *             item.pos, expr=item)
 *         loop = p_comp_for(s, append)             # <<<<<<<<<<<<<<
 *         s.expect('}')
 *         return ExprNodes.ComprehensionNode(
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(__pyx_v_s, __pyx_v_append); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_loop = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":980
 *             item.pos, expr=item)
 *         loop = p_comp_for(s, append)
 *         s.expect('}')             # <<<<<<<<<<<<<<
 *         return ExprNodes.ComprehensionNode(
 *             pos, loop=loop, append=append, type=Builtin.set_type)
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__58, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":981
 *         loop = p_comp_for(s, append)
 *         s.expect('}')
 *         return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *             pos, loop=loop, append=append, type=Builtin.set_type)
 *     elif s.sy == ':':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":982
 *         s.expect('}')
 *         return ExprNodes.ComprehensionNode(
 *             pos, loop=loop, append=append, type=Builtin.set_type)             # <<<<<<<<<<<<<<
 *     elif s.sy == ':':
 *         # dict literal or comprehension
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":981
 *         loop = p_comp_for(s, append)
 *         s.expect('}')
 *         return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *             pos, loop=loop, append=append, type=Builtin.set_type)
 *     elif s.sy == ':':
 */
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":982
 *         s.expect('}')
 *         return ExprNodes.ComprehensionNode(
 *             pos, loop=loop, append=append, type=Builtin.set_type)             # <<<<<<<<<<<<<<
 *     elif s.sy == ':':
 *         # dict literal or comprehension
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_loop, __pyx_v_loop) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_append, __pyx_v_append) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_set_type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_type, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":981
 *         loop = p_comp_for(s, append)
 *         s.expect('}')
 *         return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *             pos, loop=loop, append=append, type=Builtin.set_type)
 *     elif s.sy == ':':
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":983
 *         return ExprNodes.ComprehensionNode(
 *             pos, loop=loop, append=append, type=Builtin.set_type)
 *     elif s.sy == ':':             # <<<<<<<<<<<<<<
 *         # dict literal or comprehension
 *         key = item
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":985
 *     elif s.sy == ':':
 *         # dict literal or comprehension
 *         key = item             # <<<<<<<<<<<<<<
 *         s.next()
 *         value = p_test(s)
 */
    __Pyx_INCREF(__pyx_v_item);
    __pyx_v_key = __pyx_v_item;

    /* "Cython/Compiler/Parsing.py":986
 *         # dict literal or comprehension
 *         key = item
 *         s.next()             # <<<<<<<<<<<<<<
 *         value = p_test(s)
 *         if s.sy == 'for':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":987
 *         key = item
 *         s.next()
 *         value = p_test(s)             # <<<<<<<<<<<<<<
 *         if s.sy == 'for':
 *             # dict comprehension
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":988
 *         s.next()
 *         value = p_test(s)
 *         if s.sy == 'for':             # <<<<<<<<<<<<<<
 *             # dict comprehension
 *             append = ExprNodes.DictComprehensionAppendNode(
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":990
 *         if s.sy == 'for':
 *             # dict comprehension
 *             append = ExprNodes.DictComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *                 item.pos, key_expr=key, value_expr=value)
 *             loop = p_comp_for(s, append)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictComprehensionAppendNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);

      /* "Cython/Compiler/Parsing.py":991
 *             # dict comprehension
 *             append = ExprNodes.DictComprehensionAppendNode(
 *                 item.pos, key_expr=key, value_expr=value)             # <<<<<<<<<<<<<<
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s_pos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);

      /* "Cython/Compiler/Parsing.py":990
 *         if s.sy == 'for':
 *             # dict comprehension
 *             append = ExprNodes.DictComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *                 item.pos, key_expr=key, value_expr=value)
 *             loop = p_comp_for(s, append)
 */
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);

      /* "Cython/Compiler/Parsing.py":991
 *             # dict comprehension
 *             append = ExprNodes.DictComprehensionAppendNode(
 *                 item.pos, key_expr=key, value_expr=value)             # <<<<<<<<<<<<<<
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 */
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key_expr, __pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value_expr, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":990
 *         if s.sy == 'for':
 *             # dict comprehension
 *             append = ExprNodes.DictComprehensionAppendNode(             # <<<<<<<<<<<<<<
 *                 item.pos, key_expr=key, value_expr=value)
 *             loop = p_comp_for(s, append)
 */
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __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_append = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":992
 *             append = ExprNodes.DictComprehensionAppendNode(
 *                 item.pos, key_expr=key, value_expr=value)
 *             loop = p_comp_for(s, append)             # <<<<<<<<<<<<<<
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_comp_for(__pyx_v_s, __pyx_v_append); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_loop = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":993
 *                 item.pos, key_expr=key, value_expr=value)
 *             loop = p_comp_for(s, append)
 *             s.expect('}')             # <<<<<<<<<<<<<<
 *             return ExprNodes.ComprehensionNode(
 *                 pos, loop=loop, append=append, type=Builtin.dict_type)
 */
      __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__58, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":994
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *                 pos, loop=loop, append=append, type=Builtin.dict_type)
 *         else:
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);

      /* "Cython/Compiler/Parsing.py":995
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(
 *                 pos, loop=loop, append=append, type=Builtin.dict_type)             # <<<<<<<<<<<<<<
 *         else:
 *             # dict literal
 */
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":994
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *                 pos, loop=loop, append=append, type=Builtin.dict_type)
 *         else:
 */
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);

      /* "Cython/Compiler/Parsing.py":995
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(
 *                 pos, loop=loop, append=append, type=Builtin.dict_type)             # <<<<<<<<<<<<<<
 *         else:
 *             # dict literal
 */
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_loop, __pyx_v_loop) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_append, __pyx_v_append) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_n_s_dict_type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_type, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":994
 *             loop = p_comp_for(s, append)
 *             s.expect('}')
 *             return ExprNodes.ComprehensionNode(             # <<<<<<<<<<<<<<
 *                 pos, loop=loop, append=append, type=Builtin.dict_type)
 *         else:
 */
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":998
 *         else:
 *             # dict literal
 *             items = [ExprNodes.DictItemNode(key.pos, key=key, value=value)]             # <<<<<<<<<<<<<<
 *             while s.sy == ',':
 *                 s.next()
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_key, __pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __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_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_v_items = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":999
 *             # dict literal
 *             items = [ExprNodes.DictItemNode(key.pos, key=key, value=value)]
 *             while s.sy == ',':             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 if s.sy == '}':
 */
      while (1) {
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (!__pyx_t_7) break;

        /* "Cython/Compiler/Parsing.py":1000
 *             items = [ExprNodes.DictItemNode(key.pos, key=key, value=value)]
 *             while 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_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1001
 *             while s.sy == ',':
 *                 s.next()
 *                 if s.sy == '}':             # <<<<<<<<<<<<<<
 *                     break
 *                 key = p_test(s)
 */
        __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__58, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_7) {

          /* "Cython/Compiler/Parsing.py":1002
 *                 s.next()
 *                 if s.sy == '}':
 *                     break             # <<<<<<<<<<<<<<
 *                 key = p_test(s)
 *                 s.expect(':')
 */
          goto __pyx_L10_break;
        }

        /* "Cython/Compiler/Parsing.py":1003
 *                 if s.sy == '}':
 *                     break
 *                 key = p_test(s)             # <<<<<<<<<<<<<<
 *                 s.expect(':')
 *                 value = p_test(s)
 */
        __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1004
 *                     break
 *                 key = p_test(s)
 *                 s.expect(':')             # <<<<<<<<<<<<<<
 *                 value = p_test(s)
 *                 items.append(
 */
        __pyx_t_7 = ((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_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "Cython/Compiler/Parsing.py":1005
 *                 key = p_test(s)
 *                 s.expect(':')
 *                 value = p_test(s)             # <<<<<<<<<<<<<<
 *                 items.append(
 *                     ExprNodes.DictItemNode(key.pos, key=key, value=value))
 */
        __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "Cython/Compiler/Parsing.py":1007
 *                 value = p_test(s)
 *                 items.append(
 *                     ExprNodes.DictItemNode(key.pos, key=key, value=value))             # <<<<<<<<<<<<<<
 *             s.expect('}')
 *             return ExprNodes.DictNode(pos, key_value_pairs=items)
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictItemNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_pos); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __pyx_t_5 = 0;
        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key, __pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __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_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":1006
 *                 s.expect(':')
 *                 value = p_test(s)
 *                 items.append(             # <<<<<<<<<<<<<<
 *                     ExprNodes.DictItemNode(key.pos, key=key, value=value))
 *             s.expect('}')
 */
        __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_L10_break:;

      /* "Cython/Compiler/Parsing.py":1008
 *                 items.append(
 *                     ExprNodes.DictItemNode(key.pos, key=key, value=value))
 *             s.expect('}')             # <<<<<<<<<<<<<<
 *             return ExprNodes.DictNode(pos, key_value_pairs=items)
 *     else:
 */
      __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__58, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1009
 *                     ExprNodes.DictItemNode(key.pos, key=key, value=value))
 *             s.expect('}')
 *             return ExprNodes.DictNode(pos, key_value_pairs=items)             # <<<<<<<<<<<<<<
 *     else:
 *         # raise an error
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key_value_pairs, __pyx_v_items) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __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(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1012
 *     else:
 *         # raise an error
 *         s.expect('}')             # <<<<<<<<<<<<<<
 *     return ExprNodes.DictNode(pos, key_value_pairs = [])
 * 
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect(__pyx_v_s, __pyx_kp_u__58, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "Cython/Compiler/Parsing.py":1013
 *         # raise an error
 *         s.expect('}')
 *     return ExprNodes.DictNode(pos, key_value_pairs = [])             # <<<<<<<<<<<<<<
 * 
 * # NOTE: no longer in Py3 :)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key_value_pairs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __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_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":957
 * #dictmaker: test ':' test (',' test ':' test)* [',']
 * 
 * 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_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_item);
  __Pyx_XDECREF(__pyx_v_values);
  __Pyx_XDECREF(__pyx_v_append);
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1016
 * 
 * # 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_backquote_expr", 0);

  /* "Cython/Compiler/Parsing.py":1018
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1019
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1020
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_args = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1021
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1022
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1023
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1024
 *         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__45, NULL); if (unlikely(__pyx_t_3 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1025
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = ((__pyx_t_5 == 1) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1026
 *     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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_arg = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L5;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1028
 *         arg = args[0]
 *     else:
 *         arg = ExprNodes.TupleNode(pos, args = args)             # <<<<<<<<<<<<<<
 *     return ExprNodes.BackquoteNode(pos, arg = arg)
 * 
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __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":1029
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_arg, __pyx_v_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __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":1016
 * 
 * # 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":1031
 *     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
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1032
 * 
 * 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_1 = (__pyx_v_expr != Py_None);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_expr);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    __pyx_t_4 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_1) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
    __pyx_t_2 = 0;
  } else {
    __pyx_t_3 = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __pyx_v_exprs = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1033
 * 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_1 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_expr_terminators, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = (__pyx_t_1 != 0);
    if (!__pyx_t_5) break;

    /* "Cython/Compiler/Parsing.py":1034
 *     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_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_exprs, __pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1035
 *     while s.sy not in expr_terminators:
 *         exprs.append( p_test(s) )
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1036
 *         exprs.append( p_test(s) )
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     return exprs
 */
      goto __pyx_L4_break;
    }

    /* "Cython/Compiler/Parsing.py":1037
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return exprs
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":1038
 *             break
 *         s.next()
 *     return exprs             # <<<<<<<<<<<<<<
 * 
 * def p_test_or_starred_expr_list(s, expr=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_exprs);
  __pyx_r = __pyx_v_exprs;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1031
 *     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_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __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":1040
 *     return exprs
 * 
 * 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
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1041
 * 
 * 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_1 = (__pyx_v_expr != Py_None);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_expr);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    __pyx_t_4 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_1) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
    __pyx_t_2 = 0;
  } else {
    __pyx_t_3 = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __pyx_v_exprs = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1042
 * 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_1 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_expr_terminators, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = (__pyx_t_1 != 0);
    if (!__pyx_t_5) break;

    /* "Cython/Compiler/Parsing.py":1043
 *     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_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test_or_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_exprs, __pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1044
 *     while s.sy not in expr_terminators:
 *         exprs.append( p_test_or_starred_expr(s) )
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             break
 *         s.next()
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1045
 *         exprs.append( p_test_or_starred_expr(s) )
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *     return exprs
 */
      goto __pyx_L4_break;
    }

    /* "Cython/Compiler/Parsing.py":1046
 *         if s.sy != ',':
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return exprs
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":1047
 *             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":1040
 *     return exprs
 * 
 * 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_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __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":1052
 * #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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_testlist", 0);

  /* "Cython/Compiler/Parsing.py":1053
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1054
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1055
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1056
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1057
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_exprs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1058
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1060
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * # testlist_star_expr: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1052
 * #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":1064
 * # 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_testlist_star_expr", 0);

  /* "Cython/Compiler/Parsing.py":1065
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1066
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1067
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1068
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1069
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_exprs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1070
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1072
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * # testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1064
 * # 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":1076
 * # 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_testlist_comp", 0);

  /* "Cython/Compiler/Parsing.py":1077
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1078
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1079
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1080
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1081
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_exprs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1082
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __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":1083
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1084
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1086
 *         return p_genexp(s, expr)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * def p_genexp(s, expr):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1076
 * # 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":1088
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_genexp", 0);

  /* "Cython/Compiler/Parsing.py":1090
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":1091
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "Cython/Compiler/Parsing.py":1090
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "Cython/Compiler/Parsing.py":1091
 *     # 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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_YieldExprNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arg, __pyx_v_expr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":1090
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __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":1092
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_loop, __pyx_v_loop) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __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":1088
 *         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":1103
 * #-------------------------------------------------------
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_global_statement", 0);

  /* "Cython/Compiler/Parsing.py":1105
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1106
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1107
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_names = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1108
 *     s.next()
 *     names = p_ident_list(s)
 *     return Nodes.GlobalNode(pos, names = names)             # <<<<<<<<<<<<<<
 * 
 * def p_nonlocal_statement(s):
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_names, __pyx_v_names) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __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":1103
 * #-------------------------------------------------------
 * 
 * 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":1110
 *     return Nodes.GlobalNode(pos, names = names)
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_nonlocal_statement", 0);

  /* "Cython/Compiler/Parsing.py":1111
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1112
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1113
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_names = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1114
 *     s.next()
 *     names = p_ident_list(s)
 *     return Nodes.NonlocalNode(pos, names = names)             # <<<<<<<<<<<<<<
 * 
 * def p_expression_or_assignment(s):
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_names, __pyx_v_names) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __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":1110
 *     return Nodes.GlobalNode(pos, names = names)
 * 
 * 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":1116
 *     return Nodes.NonlocalNode(pos, names = names)
 * 
 * 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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  Py_ssize_t __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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_expression_or_assignment", 0);

  /* "Cython/Compiler/Parsing.py":1117
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_expr_list = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1118
 * 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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {
    __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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_3;
  }
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1121
 *         # 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_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);

    /* "Cython/Compiler/Parsing.py":1123
 *         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_6 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pos, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1121
 *         # 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_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__59, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1124
 *                 " - 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_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_5) break;

    /* "Cython/Compiler/Parsing.py":1125
 *                 pos=expr_list[0].pos)
 *     while s.sy == '=':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == 'yield':
 *             expr = p_yield_expression(s)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1126
 *     while s.sy == '=':
 *         s.next()
 *         if s.sy == 'yield':             # <<<<<<<<<<<<<<
 *             expr = p_yield_expression(s)
 *         else:
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1127
 *         s.next()
 *         if s.sy == 'yield':
 *             expr = p_yield_expression(s)             # <<<<<<<<<<<<<<
 *         else:
 *             expr = p_testlist_star_expr(s)
 */
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_7);
      __pyx_t_7 = 0;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1129
 *             expr = p_yield_expression(s)
 *         else:
 *             expr = p_testlist_star_expr(s)             # <<<<<<<<<<<<<<
 *         expr_list.append(expr)
 *     if len(expr_list) == 1:
 */
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist_star_expr(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_7);
      __pyx_t_7 = 0;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":1130
 *         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_8 = __Pyx_PyList_Append(__pyx_v_expr_list, __pyx_v_expr); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "Cython/Compiler/Parsing.py":1131
 *             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_9 = PyList_GET_SIZE(__pyx_v_expr_list); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = ((__pyx_t_9 == 1) != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1132
 *         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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_re, __pyx_n_s_match); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_kp_u__60);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__60);
    __Pyx_GIVEREF(__pyx_kp_u__60);
    __Pyx_INCREF(__pyx_v_s->sy);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_s->sy);
    __Pyx_GIVEREF(__pyx_v_s->sy);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1133
 *     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_1 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_lhs = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1134
 *         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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_SliceIndexNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_IsInstance(__pyx_v_lhs, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_t_5 != 0);
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":1136
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(             # <<<<<<<<<<<<<<
 *                     lhs.pos,
 *                     base=lhs.base,
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IndexNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);

        /* "Cython/Compiler/Parsing.py":1137
 *                 # 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_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);

        /* "Cython/Compiler/Parsing.py":1136
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(             # <<<<<<<<<<<<<<
 *                     lhs.pos,
 *                     base=lhs.base,
 */
        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);

        /* "Cython/Compiler/Parsing.py":1138
 *                 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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":1139
 *                     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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_start); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __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_6, __pyx_t_10, 0, &__pyx_t_13); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

        /* "Cython/Compiler/Parsing.py":1136
 *             if isinstance(lhs, ExprNodes.SliceIndexNode):
 *                 # implementation requires IndexNode
 *                 lhs = ExprNodes.IndexNode(             # <<<<<<<<<<<<<<
 *                     lhs.pos,
 *                     base=lhs.base,
 */
        __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_lhs, __pyx_t_12);
        __pyx_t_12 = 0;
        goto __pyx_L9;
      }

      /* "Cython/Compiler/Parsing.py":1140
 *                     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_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_12);
      __Pyx_GIVEREF(__pyx_t_12);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_12 = 0;
      __pyx_t_2 = 0;
      __pyx_t_7 = 0;
      __pyx_t_3 = PyObject_IsInstance(__pyx_v_lhs, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = ((!(__pyx_t_3 != 0)) != 0);
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":1141
 *                     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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_kp_u_Illegal_operand_for_inplace_oper);
        PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_kp_u_Illegal_operand_for_inplace_oper);
        __Pyx_GIVEREF(__pyx_kp_u_Illegal_operand_for_inplace_oper);
        __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L9;
      }
      __pyx_L9:;

      /* "Cython/Compiler/Parsing.py":1142
 *             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_1 = __Pyx_PyObject_GetSlice(__pyx_v_s->sy, 0, -1, NULL, NULL, &__pyx_slice__61, 0, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_operator = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1143
 *                 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_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_filename = __pyx_f[0]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1144
 *             operator = s.sy[:-1]
 *             s.next()
 *             if s.sy == 'yield':             # <<<<<<<<<<<<<<
 *                 rhs = p_yield_expression(s)
 *             else:
 */
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_5) {

        /* "Cython/Compiler/Parsing.py":1145
 *             s.next()
 *             if s.sy == 'yield':
 *                 rhs = p_yield_expression(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 rhs = p_testlist(s)
 */
        __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_yield_expression(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_rhs = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L10;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":1147
 *                 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]
 */
        __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_testlist(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_rhs = __pyx_t_1;
        __pyx_t_1 = 0;
      }
      __pyx_L10:;

      /* "Cython/Compiler/Parsing.py":1148
 *             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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_InPlaceAssignmentNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_lhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_operator, __pyx_v_operator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_lhs, __pyx_v_lhs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_rhs, __pyx_v_rhs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_r = __pyx_t_12;
      __pyx_t_12 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1149
 *                 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_12 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_12 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_XDECREF_SET(__pyx_v_expr, __pyx_t_12);
    __pyx_t_12 = 0;

    /* "Cython/Compiler/Parsing.py":1150
 *             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_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExprStatNode); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_expr, __pyx_v_expr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 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":1152
 *         return Nodes.ExprStatNode(expr.pos, expr=expr)
 * 
 *     rhs = expr_list[-1]             # <<<<<<<<<<<<<<
 *     if len(expr_list) == 2:
 *         return Nodes.SingleAssignmentNode(rhs.pos,
 */
  __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_expr_list, -1, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_rhs = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1153
 * 
 *     rhs = expr_list[-1]
 *     if len(expr_list) == 2:             # <<<<<<<<<<<<<<
 *         return Nodes.SingleAssignmentNode(rhs.pos,
 *             lhs = expr_list[0], rhs = rhs)
 */
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_expr_list); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = ((__pyx_t_9 == 2) != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1154
 *     rhs = expr_list[-1]
 *     if len(expr_list) == 2:
 *         return Nodes.SingleAssignmentNode(rhs.pos,             # <<<<<<<<<<<<<<
 *             lhs = expr_list[0], rhs = rhs)
 *     else:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_SingleAssignmentNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_rhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);

    /* "Cython/Compiler/Parsing.py":1155
 *     if len(expr_list) == 2:
 *         return Nodes.SingleAssignmentNode(rhs.pos,
 *             lhs = expr_list[0], rhs = rhs)             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.CascadedAssignmentNode(rhs.pos,
 */
    __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_expr_list, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_12 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_12);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_lhs, __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_rhs, __pyx_v_rhs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1154
 *     rhs = expr_list[-1]
 *     if len(expr_list) == 2:
 *         return Nodes.SingleAssignmentNode(rhs.pos,             # <<<<<<<<<<<<<<
 *             lhs = expr_list[0], rhs = rhs)
 *     else:
 */
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_r = __pyx_t_12;
    __pyx_t_12 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1157
 *             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_CascadedAssignmentNode); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_rhs, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);

    /* "Cython/Compiler/Parsing.py":1158
 *     else:
 *         return Nodes.CascadedAssignmentNode(rhs.pos,
 *             lhs_list = expr_list[:-1], rhs = rhs)             # <<<<<<<<<<<<<<
 * 
 * def p_print_statement(s):
 */
    __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_expr_list, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_lhs_list, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_rhs, __pyx_v_rhs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1157
 *             lhs = expr_list[0], rhs = rhs)
 *     else:
 *         return Nodes.CascadedAssignmentNode(rhs.pos,             # <<<<<<<<<<<<<<
 *             lhs_list = expr_list[:-1], rhs = rhs)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 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":1116
 *     return Nodes.NonlocalNode(pos, names = names)
 * 
 * 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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":1160
 *             lhs_list = expr_list[:-1], rhs = rhs)
 * 
 * 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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_print_statement", 0);

  /* "Cython/Compiler/Parsing.py":1162
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1163
 *     # 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":1164
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1165
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1166
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1167
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_stream = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1168
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1169
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1170
 *         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_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_2) {
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_4 = __pyx_t_3;
      } else {
        __pyx_t_4 = __pyx_t_2;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_ends_with_comma, __pyx_t_1);
      __pyx_t_1 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1172
 *             ends_with_comma = s.sy in ('NEWLINE', 'EOF')
 *     else:
 *         stream = None             # <<<<<<<<<<<<<<
 *     args = []
 *     if s.sy not in ('NEWLINE', 'EOF'):
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_stream = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1173
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1174
 *         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_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_4;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1175
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1176
 *     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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) break;

      /* "Cython/Compiler/Parsing.py":1177
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1178
 *         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_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) {
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_2 = __pyx_t_3;
      } else {
        __pyx_t_2 = __pyx_t_4;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = (__pyx_t_2 != 0);
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":1179
 *             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":1180
 *             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_L7_break;
      }

      /* "Cython/Compiler/Parsing.py":1181
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L7_break:;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":1182
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_arg_tuple = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":1183
 *             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_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PrintStatNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);

  /* "Cython/Compiler/Parsing.py":1184
 *     arg_tuple = ExprNodes.TupleNode(pos, args = args)
 *     return Nodes.PrintStatNode(pos,
 *         arg_tuple = arg_tuple, stream = stream,             # <<<<<<<<<<<<<<
 *         append_newline = not ends_with_comma)
 * 
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_arg_tuple, __pyx_v_arg_tuple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_stream, __pyx_v_stream) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1185
 *     return Nodes.PrintStatNode(pos,
 *         arg_tuple = arg_tuple, stream = stream,
 *         append_newline = not ends_with_comma)             # <<<<<<<<<<<<<<
 * 
 * def p_exec_statement(s):
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ends_with_comma); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_append_newline, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1183
 *             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_8, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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":1160
 *             lhs_list = expr_list[:-1], rhs = rhs)
 * 
 * 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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":1187
 *         append_newline = not ends_with_comma)
 * 
 * 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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_exec_statement", 0);

  /* "Cython/Compiler/Parsing.py":1189
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __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 == '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_filename = __pyx_f[0]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __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()
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_code = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1192
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __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":1194
 *     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":1195
 *         # 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_filename = __pyx_f[0]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_args = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1196
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = ((__pyx_t_4 != 2) != 0);
    if (__pyx_t_3) {
      __pyx_t_2 = ((__pyx_t_4 != 3) != 0);
      __pyx_t_5 = __pyx_t_2;
    } else {
      __pyx_t_5 = __pyx_t_3;
    }
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1197
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_expected_tuple_of_length_2_or_3, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":1198
 *         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:
 */
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_pos, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1197
 *         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_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __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;

      /* "Cython/Compiler/Parsing.py":1199
 *             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_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_code);
      PyList_SET_ITEM(__pyx_t_8, 0, __pyx_v_code);
      __Pyx_GIVEREF(__pyx_v_code);
      __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_8);
      __pyx_t_8 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1201
 *             args = [code]
 *     else:
 *         tuple_variant = False             # <<<<<<<<<<<<<<
 *         args = [code]
 *     if s.sy == 'in':
 */
    __pyx_v_tuple_variant = 0;

    /* "Cython/Compiler/Parsing.py":1202
 *     else:
 *         tuple_variant = False
 *         args = [code]             # <<<<<<<<<<<<<<
 *     if s.sy == 'in':
 *         if tuple_variant:
 */
    __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_code);
    PyList_SET_ITEM(__pyx_t_8, 0, __pyx_v_code);
    __Pyx_GIVEREF(__pyx_v_code);
    __pyx_v_args = __pyx_t_8;
    __pyx_t_8 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1203
 *         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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_in, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1204
 *         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_3 = (__pyx_v_tuple_variant != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1205
 *     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_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":1206
 *         if tuple_variant:
 *             s.error("tuple variant of exec does not support additional 'in' arguments",
 *                     fatal=False)             # <<<<<<<<<<<<<<
 *         s.next()
 *         args.append(p_test(s))
 */
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1205
 *     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_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__62, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":1207
 *             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_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_filename = __pyx_f[0]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1208
 *                     fatal=False)
 *         s.next()
 *         args.append(p_test(s))             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
    __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = __Pyx_PyObject_Append(__pyx_v_args, __pyx_t_6); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1209
 *         s.next()
 *         args.append(p_test(s))
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             args.append(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_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1210
 *         args.append(p_test(s))
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             args.append(p_test(s))
 *     return Nodes.ExecStatNode(pos, args=args)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":1211
 *         if s.sy == ',':
 *             s.next()
 *             args.append(p_test(s))             # <<<<<<<<<<<<<<
 *     return Nodes.ExecStatNode(pos, args=args)
 * 
 */
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = __Pyx_PyObject_Append(__pyx_v_args, __pyx_t_6); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":1212
 *             s.next()
 *             args.append(p_test(s))
 *     return Nodes.ExecStatNode(pos, args=args)             # <<<<<<<<<<<<<<
 * 
 * def p_del_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExecStatNode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __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_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1187
 *         append_newline = not ends_with_comma)
 * 
 * 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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":1214
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_del_statement", 0);

  /* "Cython/Compiler/Parsing.py":1216
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1217
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1219
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1220
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __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":1214
 *     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":1222
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1223
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1224
 * def p_pass_statement(s, with_newline = 0):
 *     pos = s.position()
 *     s.expect('pass')             # <<<<<<<<<<<<<<
 *     if with_newline:
 *         s.expect_newline("Expected a newline")
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1225
 *     pos = s.position()
 *     s.expect('pass')
 *     if with_newline:             # <<<<<<<<<<<<<<
 *         s.expect_newline("Expected a newline")
 *     return Nodes.PassStatNode(pos)
 */
  __pyx_t_2 = (__pyx_v_with_newline != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1226
 *     s.expect('pass')
 *     if with_newline:
 *         s.expect_newline("Expected a newline")             # <<<<<<<<<<<<<<
 *     return Nodes.PassStatNode(pos)
 * 
 */
    __pyx_t_3.__pyx_n = 1;
    __pyx_t_3.message = __pyx_kp_u_Expected_a_newline;
    __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_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1227
 *     if with_newline:
 *         s.expect_newline("Expected a newline")
 *     return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_break_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __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":1222
 *     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_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":1229
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_break_statement", 0);

  /* "Cython/Compiler/Parsing.py":1231
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1232
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1233
 *     pos = s.position()
 *     s.next()
 *     return Nodes.BreakStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_continue_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_BreakStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __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;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1229
 *     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_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":1235
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_continue_statement", 0);

  /* "Cython/Compiler/Parsing.py":1237
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1238
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1239
 *     pos = s.position()
 *     s.next()
 *     return Nodes.ContinueStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_return_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ContinueStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __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;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1235
 *     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_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":1241
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_return_statement", 0);

  /* "Cython/Compiler/Parsing.py":1243
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1244
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1245
 *     pos = s.position()
 *     s.next()
 *     if s.sy not in statement_terminators:             # <<<<<<<<<<<<<<
 *         value = p_testlist(s)
 *     else:
 */
  __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1246
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1248
 *         value = p_testlist(s)
 *     else:
 *         value = None             # <<<<<<<<<<<<<<
 *     return Nodes.ReturnStatNode(pos, value = value)
 * 
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_value = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1249
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __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":1241
 *     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":1251
 *     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;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_raise_statement", 0);

  /* "Cython/Compiler/Parsing.py":1253
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1254
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1255
 *     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":1256
 *     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":1257
 *     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":1258
 *     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":1259
 *     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_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_statement_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1260
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __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":1261
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1262
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1263
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __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":1264
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":1265
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":1266
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_exc_tb, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L5;
      }
      __pyx_L5:;
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":1267
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1268
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1269
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_cause, __pyx_t_1);
      __pyx_t_1 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1270
 *             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_3 = __Pyx_PyObject_IsTrue(__pyx_v_exc_type); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_3) {
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_exc_value); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) {
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_exc_tb); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_4;
    } else {
      __pyx_t_5 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_5;
  } else {
    __pyx_t_2 = __pyx_t_3;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1271
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);

    /* "Cython/Compiler/Parsing.py":1272
 *     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,
 */
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_exc_type, __pyx_v_exc_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1273
 *         return Nodes.RaiseStatNode(pos,
 *             exc_type = exc_type,
 *             exc_value = exc_value,             # <<<<<<<<<<<<<<
 *             exc_tb = exc_tb,
 *             cause = cause)
 */
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_exc_value, __pyx_v_exc_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1274
 *             exc_type = exc_type,
 *             exc_value = exc_value,
 *             exc_tb = exc_tb,             # <<<<<<<<<<<<<<
 *             cause = cause)
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_exc_tb, __pyx_v_exc_tb) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1275
 *             exc_value = exc_value,
 *             exc_tb = exc_tb,
 *             cause = cause)             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.ReraiseStatNode(pos)
 */
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_cause, __pyx_v_cause) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1271
 *             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_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1277
 *             cause = cause)
 *     else:
 *         return Nodes.ReraiseStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_import_statement(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ReraiseStatNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1251
 *     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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":1279
 *         return Nodes.ReraiseStatNode(pos)
 * 
 * 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_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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_import_statement", 0);

  /* "Cython/Compiler/Parsing.py":1281
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1282
 *     # 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":1283
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1284
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_items = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1285
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1286
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1287
 *     while s.sy == ',':
 *         s.next()
 *         items.append(p_dotted_name(s, as_allowed = 1))             # <<<<<<<<<<<<<<
 *     stats = []
 *     for pos, target_name, dotted_name, as_name in items:
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1287; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1288
 *         s.next()
 *         items.append(p_dotted_name(s, as_allowed = 1))
 *     stats = []             # <<<<<<<<<<<<<<
 *     for pos, target_name, dotted_name, as_name in items:
 *         dotted_name = EncodedString(dotted_name)
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_stats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1289
 *         items.append(p_dotted_name(s, as_allowed = 1))
 *     stats = []
 *     for pos, target_name, dotted_name, as_name in items:             # <<<<<<<<<<<<<<
 *         dotted_name = EncodedString(dotted_name)
 *         if kind == 'cimport':
 */
  __pyx_t_2 = __pyx_v_items; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
    #if CYTHON_COMPILING_IN_CPYTHON
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    #endif
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __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_7,&__pyx_t_8,&__pyx_t_9};
      __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 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_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __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":1290
 *     stats = []
 *     for pos, target_name, dotted_name, as_name in items:
 *         dotted_name = EncodedString(dotted_name)             # <<<<<<<<<<<<<<
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(pos,
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_dotted_name);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_dotted_name);
    __Pyx_GIVEREF(__pyx_v_dotted_name);
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_dotted_name, __pyx_t_9);
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1291
 *     for pos, target_name, dotted_name, as_name in items:
 *         dotted_name = EncodedString(dotted_name)
 *         if kind == 'cimport':             # <<<<<<<<<<<<<<
 *             stat = Nodes.CImportStatNode(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_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1292
 *         dotted_name = EncodedString(dotted_name)
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(pos,             # <<<<<<<<<<<<<<
 *                 module_name = dotted_name,
 *                 as_name = as_name)
 */
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CImportStatNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);

      /* "Cython/Compiler/Parsing.py":1293
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(pos,
 *                 module_name = dotted_name,             # <<<<<<<<<<<<<<
 *                 as_name = as_name)
 *         else:
 */
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_module_name, __pyx_v_dotted_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1294
 *             stat = Nodes.CImportStatNode(pos,
 *                 module_name = dotted_name,
 *                 as_name = as_name)             # <<<<<<<<<<<<<<
 *         else:
 *             if as_name and "." in dotted_name:
 */
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_as_name, __pyx_v_as_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1292
 *         dotted_name = EncodedString(dotted_name)
 *         if kind == 'cimport':
 *             stat = Nodes.CImportStatNode(pos,             # <<<<<<<<<<<<<<
 *                 module_name = dotted_name,
 *                 as_name = as_name)
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __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_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_stat, __pyx_t_7);
      __pyx_t_7 = 0;
      goto __pyx_L9;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1296
 *                 as_name = as_name)
 *         else:
 *             if as_name and "." in dotted_name:             # <<<<<<<<<<<<<<
 *                 name_list = ExprNodes.ListNode(pos, args = [
 *                         ExprNodes.IdentifierStringNode(pos, value = EncodedString("*"))])
 */
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_as_name); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {
        __pyx_t_12 = (__Pyx_PySequence_Contains(__pyx_kp_u__33, __pyx_v_dotted_name, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_13 = __pyx_t_12;
      } else {
        __pyx_t_13 = __pyx_t_3;
      }
      if (__pyx_t_13) {

        /* "Cython/Compiler/Parsing.py":1297
 *         else:
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args = [             # <<<<<<<<<<<<<<
 *                         ExprNodes.IdentifierStringNode(pos, value = EncodedString("*"))])
 *             else:
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ListNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);

        /* "Cython/Compiler/Parsing.py":1298
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args = [
 *                         ExprNodes.IdentifierStringNode(pos, value = EncodedString("*"))])             # <<<<<<<<<<<<<<
 *             else:
 *                 name_list = None
 */
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_14 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_14);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_value, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, __pyx_t_10); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "Cython/Compiler/Parsing.py":1297
 *         else:
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args = [             # <<<<<<<<<<<<<<
 *                         ExprNodes.IdentifierStringNode(pos, value = EncodedString("*"))])
 *             else:
 */
        __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_14);
        __Pyx_GIVEREF(__pyx_t_14);
        __pyx_t_14 = 0;
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_args, __pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __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_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_name_list, __pyx_t_10);
        __pyx_t_10 = 0;
        goto __pyx_L10;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":1300
 *                         ExprNodes.IdentifierStringNode(pos, value = EncodedString("*"))])
 *             else:
 *                 name_list = None             # <<<<<<<<<<<<<<
 *             stat = Nodes.SingleAssignmentNode(pos,
 *                 lhs = ExprNodes.NameNode(pos,
 */
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_name_list, Py_None);
      }
      __pyx_L10:;

      /* "Cython/Compiler/Parsing.py":1301
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);

      /* "Cython/Compiler/Parsing.py":1302
 *                 name_list = None
 *             stat = Nodes.SingleAssignmentNode(pos,
 *                 lhs = ExprNodes.NameNode(pos,             # <<<<<<<<<<<<<<
 *                     name = as_name or target_name),
 *                 rhs = ExprNodes.ImportNode(pos,
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);

      /* "Cython/Compiler/Parsing.py":1303
 *             stat = Nodes.SingleAssignmentNode(pos,
 *                 lhs = ExprNodes.NameNode(pos,
 *                     name = as_name or target_name),             # <<<<<<<<<<<<<<
 *                 rhs = ExprNodes.ImportNode(pos,
 *                     module_name = ExprNodes.IdentifierStringNode(
 */
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_as_name); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_13) {
        __Pyx_INCREF(__pyx_v_target_name);
        __pyx_t_9 = __pyx_v_target_name;
      } else {
        __Pyx_INCREF(__pyx_v_as_name);
        __pyx_t_9 = __pyx_v_as_name;
      }
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":1302
 *                 name_list = None
 *             stat = Nodes.SingleAssignmentNode(pos,
 *                 lhs = ExprNodes.NameNode(pos,             # <<<<<<<<<<<<<<
 *                     name = as_name or target_name),
 *                 rhs = ExprNodes.ImportNode(pos,
 */
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_14, __pyx_t_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_lhs, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":1304
 *                 lhs = ExprNodes.NameNode(pos,
 *                     name = as_name or target_name),
 *                 rhs = ExprNodes.ImportNode(pos,             # <<<<<<<<<<<<<<
 *                     module_name = ExprNodes.IdentifierStringNode(
 *                         pos, value = dotted_name),
 */
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ImportNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_14);

      /* "Cython/Compiler/Parsing.py":1305
 *                     name = as_name or target_name),
 *                 rhs = ExprNodes.ImportNode(pos,
 *                     module_name = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                         pos, value = dotted_name),
 *                     level = None,
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":1306
 *                 rhs = ExprNodes.ImportNode(pos,
 *                     module_name = ExprNodes.IdentifierStringNode(
 *                         pos, value = dotted_name),             # <<<<<<<<<<<<<<
 *                     level = None,
 *                     name_list = name_list))
 */
      __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);

      /* "Cython/Compiler/Parsing.py":1305
 *                     name = as_name or target_name),
 *                 rhs = ExprNodes.ImportNode(pos,
 *                     module_name = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                         pos, value = dotted_name),
 *                     level = None,
 */
      __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_16);

      /* "Cython/Compiler/Parsing.py":1306
 *                 rhs = ExprNodes.ImportNode(pos,
 *                     module_name = ExprNodes.IdentifierStringNode(
 *                         pos, value = dotted_name),             # <<<<<<<<<<<<<<
 *                     level = None,
 *                     name_list = name_list))
 */
      if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_value, __pyx_v_dotted_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1305
 *                     name = as_name or target_name),
 *                 rhs = ExprNodes.ImportNode(pos,
 *                     module_name = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                         pos, value = dotted_name),
 *                     level = None,
 */
      __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_module_name, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

      /* "Cython/Compiler/Parsing.py":1307
 *                     module_name = ExprNodes.IdentifierStringNode(
 *                         pos, value = dotted_name),
 *                     level = None,             # <<<<<<<<<<<<<<
 *                     name_list = name_list))
 *         stats.append(stat)
 */
      if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_level, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1308
 *                         pos, value = dotted_name),
 *                     level = None,
 *                     name_list = name_list))             # <<<<<<<<<<<<<<
 *         stats.append(stat)
 *     return Nodes.StatListNode(pos, stats = stats)
 */
      if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_name_list, __pyx_v_name_list) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1304
 *                 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_9, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_rhs, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

      /* "Cython/Compiler/Parsing.py":1301
 *             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_1, __pyx_t_8); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 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":1309
 *                     level = 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_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1310
 *                     name_list = name_list))
 *         stats.append(stat)
 *     return Nodes.StatListNode(pos, stats = stats)             # <<<<<<<<<<<<<<
 * 
 * def p_from_import_statement(s, first_statement = 0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_stats, __pyx_v_stats) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1279
 *         return Nodes.ReraiseStatNode(pos)
 * 
 * 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_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":1312
 *     return Nodes.StatListNode(pos, stats = stats)
 * 
 * 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_encoded_name = NULL;
  PyObject *__pyx_v_import_list = 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;
  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;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1314
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1315
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1316
 *     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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1318
 *     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":1319
 *         # 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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":1320
 *         level = 0
 *         while s.sy == '.':
 *             level += 1             # <<<<<<<<<<<<<<
 *             s.next()
 *         if s.sy == 'cimport':
 */
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_level, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __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":1321
 *         while s.sy == '.':
 *             level += 1
 *             s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == 'cimport':
 *             s.error("Relative cimport is not supported yet")
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":1322
 *             level += 1
 *             s.next()
 *         if s.sy == 'cimport':             # <<<<<<<<<<<<<<
 *             s.error("Relative cimport is not supported yet")
 *     else:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1323
 *             s.next()
 *         if s.sy == 'cimport':
 *             s.error("Relative cimport is not supported yet")             # <<<<<<<<<<<<<<
 *     else:
 *         level = None
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L6;
    }
    __pyx_L6:;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1325
 *             s.error("Relative cimport is not supported yet")
 *     else:
 *         level = None             # <<<<<<<<<<<<<<
 *     if level is not None and s.sy == 'import':
 *         # we are dealing with "from .. import foo, bar"
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_level = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1326
 *     else:
 *         level = None
 *     if level is not None and s.sy == 'import':             # <<<<<<<<<<<<<<
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), ''
 */
  __pyx_t_2 = (__pyx_v_level != Py_None);
  if (__pyx_t_2) {
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_2;
  }
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1328
 *     if level is not None and s.sy == 'import':
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), ''             # <<<<<<<<<<<<<<
 *     elif level is not None and s.sy == 'cimport':
 *         # "from .. cimport"
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_kp_u__48;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_dotted_name_pos = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_dotted_name = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L7;
  }

  /* "Cython/Compiler/Parsing.py":1329
 *         # we are dealing with "from .. import foo, bar"
 *         dotted_name_pos, dotted_name = s.position(), ''
 *     elif level is not None and s.sy == 'cimport':             # <<<<<<<<<<<<<<
 *         # "from .. cimport"
 *         s.error("Relative cimport is not supported yet")
 */
  __pyx_t_5 = (__pyx_v_level != Py_None);
  if (__pyx_t_5) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_2;
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1331
 *     elif level is not None and s.sy == 'cimport':
 *         # "from .. cimport"
 *         s.error("Relative cimport is not supported yet")             # <<<<<<<<<<<<<<
 *     else:
 *         (dotted_name_pos, _, dotted_name, _) = \
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L7;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1334
 *     else:
 *         (dotted_name_pos, _, dotted_name, _) = \
 *             p_dotted_name(s, as_allowed = 0)             # <<<<<<<<<<<<<<
 *     if s.sy in ('import', 'cimport'):
 *         kind = s.sy
 */
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 3); 
      } else {
        __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_6 = 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_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      #else
      {
        Py_ssize_t i;
        PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8};
        for (i=0; i < 4; i++) {
          PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(item);
          *(temps[i]) = item;
        }
      }
      #endif
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else {
      Py_ssize_t index = -1;
      PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8};
      __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_L8_unpacking_failed;
        __Pyx_GOTREF(item);
        *(temps[index]) = item;
      }
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L9_unpacking_done;
      __pyx_L8_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L9_unpacking_done:;
    }

    /* "Cython/Compiler/Parsing.py":1333
 *         s.error("Relative cimport is not supported yet")
 *     else:
 *         (dotted_name_pos, _, dotted_name, _) = \             # <<<<<<<<<<<<<<
 *             p_dotted_name(s, as_allowed = 0)
 *     if s.sy in ('import', 'cimport'):
 */
    __pyx_v_dotted_name_pos = __pyx_t_1;
    __pyx_t_1 = 0;
    __pyx_v__ = __pyx_t_6;
    __pyx_t_6 = 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_L7:;

  /* "Cython/Compiler/Parsing.py":1335
 *         (dotted_name_pos, _, dotted_name, _) = \
 *             p_dotted_name(s, as_allowed = 0)
 *     if s.sy in ('import', 'cimport'):             # <<<<<<<<<<<<<<
 *         kind = s.sy
 *         s.next()
 */
  __Pyx_INCREF(__pyx_v_s->sy);
  __pyx_t_3 = __pyx_v_s->sy;
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_4) {
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = __pyx_t_5;
  } else {
    __pyx_t_2 = __pyx_t_4;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1336
 *             p_dotted_name(s, as_allowed = 0)
 *     if s.sy in ('import', 'cimport'):
 *         kind = s.sy             # <<<<<<<<<<<<<<
 *         s.next()
 *     else:
 */
    __pyx_t_3 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_kind = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1337
 *     if s.sy in ('import', 'cimport'):
 *         kind = s.sy
 *         s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("Expected 'import' or 'cimport'")
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1339
 *         s.next()
 *     else:
 *         s.error("Expected 'import' or 'cimport'")             # <<<<<<<<<<<<<<
 * 
 *     is_cimport = kind == 'cimport'
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_L10:;

  /* "Cython/Compiler/Parsing.py":1341
 *         s.error("Expected 'import' or 'cimport'")
 * 
 *     is_cimport = kind == 'cimport'             # <<<<<<<<<<<<<<
 *     is_parenthesized = False
 *     if s.sy == '*':
 */
  if (unlikely(!__pyx_v_kind)) { __Pyx_RaiseUnboundLocalError("kind"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
  __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_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_is_cimport = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":1342
 * 
 *     is_cimport = kind == 'cimport'
 *     is_parenthesized = False             # <<<<<<<<<<<<<<
 *     if s.sy == '*':
 *         imported_names = [(s.position(), "*", None, None)]
 */
  __pyx_v_is_parenthesized = 0;

  /* "Cython/Compiler/Parsing.py":1343
 *     is_cimport = kind == 'cimport'
 *     is_parenthesized = False
 *     if s.sy == '*':             # <<<<<<<<<<<<<<
 *         imported_names = [(s.position(), "*", None, None)]
 *         s.next()
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1344
 *     is_parenthesized = False
 *     if s.sy == '*':
 *         imported_names = [(s.position(), "*", 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_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_kp_u__6);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_u__6);
    __Pyx_GIVEREF(__pyx_kp_u__6);
    __Pyx_INCREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_INCREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 3, Py_None);
    __Pyx_GIVEREF(Py_None);
    __pyx_t_8 = 0;
    __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_v_imported_names = ((PyObject*)__pyx_t_8);
    __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1345
 *     if s.sy == '*':
 *         imported_names = [(s.position(), "*", None, None)]
 *         s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         if s.sy == '(':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L11;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1347
 *         s.next()
 *     else:
 *         if s.sy == '(':             # <<<<<<<<<<<<<<
 *             is_parenthesized = True
 *             s.next()
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1348
 *     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":1349
 *         if s.sy == '(':
 *             is_parenthesized = True
 *             s.next()             # <<<<<<<<<<<<<<
 *         imported_names = [p_imported_name(s, is_cimport)]
 *     while s.sy == ',':
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L12;
    }
    __pyx_L12:;

    /* "Cython/Compiler/Parsing.py":1350
 *             is_parenthesized = True
 *             s.next()
 *         imported_names = [p_imported_name(s, is_cimport)]             # <<<<<<<<<<<<<<
 *     while s.sy == ',':
 *         s.next()
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_is_cimport); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_imported_name(__pyx_v_s, __pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_v_imported_names = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L11:;

  /* "Cython/Compiler/Parsing.py":1351
 *             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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":1352
 *         imported_names = [p_imported_name(s, is_cimport)]
 *     while s.sy == ',':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if is_parenthesized and 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_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1353
 *     while s.sy == ',':
 *         s.next()
 *         if is_parenthesized and s.sy == ')':             # <<<<<<<<<<<<<<
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))
 */
    __pyx_t_4 = __pyx_v_is_parenthesized;
    if (__pyx_t_4) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_2;
    } else {
      __pyx_t_5 = __pyx_t_4;
    }
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1354
 *         s.next()
 *         if is_parenthesized and s.sy == ')':
 *             break             # <<<<<<<<<<<<<<
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:
 */
      goto __pyx_L14_break;
    }

    /* "Cython/Compiler/Parsing.py":1355
 *         if is_parenthesized and s.sy == ')':
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))             # <<<<<<<<<<<<<<
 *     if is_parenthesized:
 *         s.expect(')')
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_is_cimport); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_imported_name(__pyx_v_s, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_imported_names, __pyx_t_3); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L14_break:;

  /* "Cython/Compiler/Parsing.py":1356
 *             break
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *     dotted_name = EncodedString(dotted_name)
 */
  __pyx_t_5 = (__pyx_v_is_parenthesized != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1357
 *         imported_names.append(p_imported_name(s, is_cimport))
 *     if is_parenthesized:
 *         s.expect(')')             # <<<<<<<<<<<<<<
 *     dotted_name = EncodedString(dotted_name)
 *     if dotted_name == '__future__':
 */
    __pyx_t_5 = ((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_5 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L16;
  }
  __pyx_L16:;

  /* "Cython/Compiler/Parsing.py":1358
 *     if is_parenthesized:
 *         s.expect(')')
 *     dotted_name = EncodedString(dotted_name)             # <<<<<<<<<<<<<<
 *     if dotted_name == '__future__':
 *         if not first_statement:
 */
  if (unlikely(!__pyx_v_dotted_name)) { __Pyx_RaiseUnboundLocalError("dotted_name"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_dotted_name);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_dotted_name);
  __Pyx_GIVEREF(__pyx_v_dotted_name);
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_3, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_XDECREF_SET(__pyx_v_dotted_name, __pyx_t_8);
  __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":1359
 *         s.expect(')')
 *     dotted_name = EncodedString(dotted_name)
 *     if dotted_name == '__future__':             # <<<<<<<<<<<<<<
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")
 */
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_dotted_name, __pyx_n_u_future, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":1360
 *     dotted_name = EncodedString(dotted_name)
 *     if dotted_name == '__future__':
 *         if not first_statement:             # <<<<<<<<<<<<<<
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level is not None:
 */
    __pyx_t_5 = ((!(__pyx_v_first_statement != 0)) != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1361
 *     if dotted_name == '__future__':
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")             # <<<<<<<<<<<<<<
 *         elif level is not None:
 *             s.error("invalid syntax")
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__67, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L18;
    }

    /* "Cython/Compiler/Parsing.py":1362
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level is not None:             # <<<<<<<<<<<<<<
 *             s.error("invalid syntax")
 *         else:
 */
    __pyx_t_5 = (__pyx_v_level != Py_None);
    __pyx_t_4 = (__pyx_t_5 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1363
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level is not None:
 *             s.error("invalid syntax")             # <<<<<<<<<<<<<<
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L18;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1365
 *             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_t_8 = __pyx_v_imported_names; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        #endif
        if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
          PyObject* sequence = __pyx_t_3;
          #if CYTHON_COMPILING_IN_CPYTHON
          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_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          #if CYTHON_COMPILING_IN_CPYTHON
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
            __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); 
            __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); 
          } else {
            __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
            __pyx_t_1 = PyList_GET_ITEM(sequence, 2); 
            __pyx_t_9 = PyList_GET_ITEM(sequence, 3); 
          }
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_9);
          #else
          {
            Py_ssize_t i;
            PyObject** temps[4] = {&__pyx_t_7,&__pyx_t_6,&__pyx_t_1,&__pyx_t_9};
            for (i=0; i < 4; i++) {
              PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              __Pyx_GOTREF(item);
              *(temps[i]) = item;
            }
          }
          #endif
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else {
          Py_ssize_t index = -1;
          PyObject** temps[4] = {&__pyx_t_7,&__pyx_t_6,&__pyx_t_1,&__pyx_t_9};
          __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_L21_unpacking_failed;
            __Pyx_GOTREF(item);
            *(temps[index]) = item;
          }
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_13), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          goto __pyx_L22_unpacking_done;
          __pyx_L21_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_L22_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_name_pos, __pyx_t_7);
        __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6);
        __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_as_name, __pyx_t_1);
        __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_kind, __pyx_t_9);
        __pyx_t_9 = 0;

        /* "Cython/Compiler/Parsing.py":1366
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 *                 if name == "braces":             # <<<<<<<<<<<<<<
 *                     s.error("not a chance", name_pos)
 *                     break
 */
        __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_braces, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_4) {

          /* "Cython/Compiler/Parsing.py":1367
 *             for (name_pos, name, as_name, kind) in imported_names:
 *                 if name == "braces":
 *                     s.error("not a chance", name_pos)             # <<<<<<<<<<<<<<
 *                     break
 *                 try:
 */
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_INCREF(__pyx_kp_u_not_a_chance);
          PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_kp_u_not_a_chance);
          __Pyx_GIVEREF(__pyx_kp_u_not_a_chance);
          __Pyx_INCREF(__pyx_v_name_pos);
          PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_name_pos);
          __Pyx_GIVEREF(__pyx_v_name_pos);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "Cython/Compiler/Parsing.py":1368
 *                 if name == "braces":
 *                     s.error("not a chance", name_pos)
 *                     break             # <<<<<<<<<<<<<<
 *                 try:
 *                     directive = getattr(Future, name)
 */
          goto __pyx_L20_break;
        }

        /* "Cython/Compiler/Parsing.py":1369
 *                     s.error("not a chance", name_pos)
 *                     break
 *                 try:             # <<<<<<<<<<<<<<
 *                     directive = getattr(Future, name)
 *                 except AttributeError:
 */
        {
          __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          /*try:*/ {

            /* "Cython/Compiler/Parsing.py":1370
 *                     break
 *                 try:
 *                     directive = getattr(Future, name)             # <<<<<<<<<<<<<<
 *                 except AttributeError:
 *                     s.error("future feature %s is not defined" % name, name_pos)
 */
            __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Parsing_Future;
            __Pyx_INCREF(__pyx_t_1);
            __pyx_t_9 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L24_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF_SET(__pyx_v_directive, __pyx_t_9);
            __pyx_t_9 = 0;
          }
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          goto __pyx_L31_try_end;
          __pyx_L24_error:;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "Cython/Compiler/Parsing.py":1371
 *                 try:
 *                     directive = getattr(Future, name)
 *                 except AttributeError:             # <<<<<<<<<<<<<<
 *                     s.error("future feature %s is not defined" % name, name_pos)
 *                     break
 */
          __pyx_t_17 = PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
          if (__pyx_t_17) {
            __Pyx_AddTraceback("Cython.Compiler.Parsing.p_from_import_statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_1, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L26_except_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_GOTREF(__pyx_t_3);

            /* "Cython/Compiler/Parsing.py":1372
 *                     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_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L26_except_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_future_feature_s_is_not_defined, __pyx_v_name); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L26_except_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L26_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7);
            __Pyx_GIVEREF(__pyx_t_7);
            __Pyx_INCREF(__pyx_v_name_pos);
            PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_name_pos);
            __Pyx_GIVEREF(__pyx_v_name_pos);
            __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L26_except_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

            /* "Cython/Compiler/Parsing.py":1373
 *                 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_L32_except_break;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            goto __pyx_L25_exception_handled;
            __pyx_L32_except_break:;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            goto __pyx_L29_try_break;
          }
          goto __pyx_L26_except_error;
          __pyx_L26_except_error:;
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          goto __pyx_L1_error;
          __pyx_L29_try_break:;
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          goto __pyx_L20_break;
          __pyx_L25_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          __pyx_L31_try_end:;
        }

        /* "Cython/Compiler/Parsing.py":1374
 *                     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_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_add); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_directive);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_directive);
        __Pyx_GIVEREF(__pyx_v_directive);
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __pyx_L20_break:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __pyx_L18:;

    /* "Cython/Compiler/Parsing.py":1375
 *                     break
 *                 s.context.future_directives.add(directive)
 *         return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(pos,
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1376
 *                 s.context.future_directives.add(directive)
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':             # <<<<<<<<<<<<<<
 *         return Nodes.FromCImportStatNode(pos,
 *             module_name = dotted_name,
 */
  if (unlikely(!__pyx_v_kind)) { __Pyx_RaiseUnboundLocalError("kind"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1377
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(pos,             # <<<<<<<<<<<<<<
 *             module_name = dotted_name,
 *             imported_names = imported_names)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_FromCImportStatNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);

    /* "Cython/Compiler/Parsing.py":1378
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(pos,
 *             module_name = dotted_name,             # <<<<<<<<<<<<<<
 *             imported_names = imported_names)
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_module_name, __pyx_v_dotted_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1379
 *         return Nodes.FromCImportStatNode(pos,
 *             module_name = dotted_name,
 *             imported_names = imported_names)             # <<<<<<<<<<<<<<
 *     else:
 *         imported_name_strings = []
 */
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_imported_names, __pyx_v_imported_names) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1377
 *         return Nodes.PassStatNode(pos)
 *     elif kind == 'cimport':
 *         return Nodes.FromCImportStatNode(pos,             # <<<<<<<<<<<<<<
 *             module_name = dotted_name,
 *             imported_names = imported_names)
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1381
 *             imported_names = imported_names)
 *     else:
 *         imported_name_strings = []             # <<<<<<<<<<<<<<
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_imported_name_strings = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1382
 *     else:
 *         imported_name_strings = []
 *         items = []             # <<<<<<<<<<<<<<
 *         for (name_pos, name, as_name, kind) in imported_names:
 *             encoded_name = EncodedString(name)
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_items = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1383
 *         imported_name_strings = []
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:             # <<<<<<<<<<<<<<
 *             encoded_name = EncodedString(name)
 *             imported_name_strings.append(
 */
    __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_COMPILING_IN_CPYTHON
      __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #else
      __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #endif
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        #if CYTHON_COMPILING_IN_CPYTHON
        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_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        #if CYTHON_COMPILING_IN_CPYTHON
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
          __pyx_t_13 = PyTuple_GET_ITEM(sequence, 3); 
        } else {
          __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
          __pyx_t_7 = PyList_GET_ITEM(sequence, 2); 
          __pyx_t_13 = PyList_GET_ITEM(sequence, 3); 
        }
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_13);
        #else
        {
          Py_ssize_t i;
          PyObject** temps[4] = {&__pyx_t_9,&__pyx_t_3,&__pyx_t_7,&__pyx_t_13};
          for (i=0; i < 4; i++) {
            PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(item);
            *(temps[i]) = item;
          }
        }
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        PyObject** temps[4] = {&__pyx_t_9,&__pyx_t_3,&__pyx_t_7,&__pyx_t_13};
        __pyx_t_6 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext;
        for (index=0; index < 4; index++) {
          PyObject* item = __pyx_t_10(__pyx_t_6); if (unlikely(!item)) goto __pyx_L36_unpacking_failed;
          __Pyx_GOTREF(item);
          *(temps[index]) = item;
        }
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_6), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L37_unpacking_done;
        __pyx_L36_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_L37_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_name_pos, __pyx_t_9);
      __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3);
      __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_as_name, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_kind, __pyx_t_13);
      __pyx_t_13 = 0;

      /* "Cython/Compiler/Parsing.py":1384
 *         items = []
 *         for (name_pos, name, as_name, kind) in imported_names:
 *             encoded_name = EncodedString(name)             # <<<<<<<<<<<<<<
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value = encoded_name))
 */
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __pyx_t_13 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_8, NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_encoded_name, __pyx_t_13);
      __pyx_t_13 = 0;

      /* "Cython/Compiler/Parsing.py":1386
 *             encoded_name = EncodedString(name)
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value = encoded_name))             # <<<<<<<<<<<<<<
 *             items.append(
 *                 (name,
 */
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_name_pos);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name_pos);
      __Pyx_GIVEREF(__pyx_v_name_pos);
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_value, __pyx_v_encoded_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":1385
 *         for (name_pos, name, as_name, kind) in imported_names:
 *             encoded_name = EncodedString(name)
 *             imported_name_strings.append(             # <<<<<<<<<<<<<<
 *                 ExprNodes.IdentifierStringNode(name_pos, value = encoded_name))
 *             items.append(
 */
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_imported_name_strings, __pyx_t_3); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":1389
 *             items.append(
 *                 (name,
 *                  ExprNodes.NameNode(name_pos,             # <<<<<<<<<<<<<<
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_name_pos);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_name_pos);
      __Pyx_GIVEREF(__pyx_v_name_pos);
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);

      /* "Cython/Compiler/Parsing.py":1390
 *                 (name,
 *                  ExprNodes.NameNode(name_pos,
 *                                     name = as_name or name)))             # <<<<<<<<<<<<<<
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args = imported_name_strings)
 */
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_as_name); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) {
        __Pyx_INCREF(__pyx_v_name);
        __pyx_t_13 = __pyx_v_name;
      } else {
        __Pyx_INCREF(__pyx_v_as_name);
        __pyx_t_13 = __pyx_v_as_name;
      }
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_name, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

      /* "Cython/Compiler/Parsing.py":1389
 *             items.append(
 *                 (name,
 *                  ExprNodes.NameNode(name_pos,             # <<<<<<<<<<<<<<
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(
 */
      __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1388
 *                 ExprNodes.IdentifierStringNode(name_pos, value = encoded_name))
 *             items.append(
 *                 (name,             # <<<<<<<<<<<<<<
 *                  ExprNodes.NameNode(name_pos,
 *                                     name = as_name or name)))
 */
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_13);
      __Pyx_GIVEREF(__pyx_t_13);
      __pyx_t_13 = 0;

      /* "Cython/Compiler/Parsing.py":1387
 *             imported_name_strings.append(
 *                 ExprNodes.IdentifierStringNode(name_pos, value = encoded_name))
 *             items.append(             # <<<<<<<<<<<<<<
 *                 (name,
 *                  ExprNodes.NameNode(name_pos,
 */
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_items, __pyx_t_8); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1391
 *                  ExprNodes.NameNode(name_pos,
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(             # <<<<<<<<<<<<<<
 *             imported_names[0][0], args = imported_name_strings)
 *         dotted_name = EncodedString(dotted_name)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ListNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":1392
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args = imported_name_strings)             # <<<<<<<<<<<<<<
 *         dotted_name = EncodedString(dotted_name)
 *         return Nodes.FromImportStatNode(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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_13 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1391
 *                  ExprNodes.NameNode(name_pos,
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(             # <<<<<<<<<<<<<<
 *             imported_names[0][0], args = imported_name_strings)
 *         dotted_name = EncodedString(dotted_name)
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);

    /* "Cython/Compiler/Parsing.py":1392
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args = imported_name_strings)             # <<<<<<<<<<<<<<
 *         dotted_name = EncodedString(dotted_name)
 *         return Nodes.FromImportStatNode(pos,
 */
    if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_args, __pyx_v_imported_name_strings) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1391
 *                  ExprNodes.NameNode(name_pos,
 *                                     name = as_name or name)))
 *         import_list = ExprNodes.ListNode(             # <<<<<<<<<<<<<<
 *             imported_names[0][0], args = imported_name_strings)
 *         dotted_name = EncodedString(dotted_name)
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_13); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __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_13); __pyx_t_13 = 0;
    __pyx_v_import_list = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":1393
 *         import_list = ExprNodes.ListNode(
 *             imported_names[0][0], args = imported_name_strings)
 *         dotted_name = EncodedString(dotted_name)             # <<<<<<<<<<<<<<
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_dotted_name);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_dotted_name);
    __Pyx_GIVEREF(__pyx_v_dotted_name);
    __pyx_t_13 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_7, NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_dotted_name, __pyx_t_13);
    __pyx_t_13 = 0;

    /* "Cython/Compiler/Parsing.py":1394
 *             imported_names[0][0], args = imported_name_strings)
 *         dotted_name = EncodedString(dotted_name)
 *         return Nodes.FromImportStatNode(pos,             # <<<<<<<<<<<<<<
 *             module = ExprNodes.ImportNode(dotted_name_pos,
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_FromImportStatNode); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);

    /* "Cython/Compiler/Parsing.py":1395
 *         dotted_name = EncodedString(dotted_name)
 *         return Nodes.FromImportStatNode(pos,
 *             module = ExprNodes.ImportNode(dotted_name_pos,             # <<<<<<<<<<<<<<
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 *                 level = level,
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_ImportNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(!__pyx_v_dotted_name_pos)) { __Pyx_RaiseUnboundLocalError("dotted_name_pos"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_dotted_name_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_dotted_name_pos);
    __Pyx_GIVEREF(__pyx_v_dotted_name_pos);
    __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);

    /* "Cython/Compiler/Parsing.py":1396
 *         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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_19);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_value, __pyx_v_dotted_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_18, __pyx_t_19); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_module_name, __pyx_t_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;

    /* "Cython/Compiler/Parsing.py":1397
 *             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_9, __pyx_n_s_level, __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1398
 *                 module_name = ExprNodes.IdentifierStringNode(pos, value = dotted_name),
 *                 level = level,
 *                 name_list = import_list),             # <<<<<<<<<<<<<<
 *             items = items)
 * 
 */
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_name_list, __pyx_v_import_list) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1395
 *         dotted_name = EncodedString(dotted_name)
 *         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_1, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_module, __pyx_t_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;

    /* "Cython/Compiler/Parsing.py":1399
 *                 level = level,
 *                 name_list = import_list),
 *             items = items)             # <<<<<<<<<<<<<<
 * 
 * imported_name_kinds = cython.declare(
 */
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_items, __pyx_v_items) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1394
 *             imported_names[0][0], args = imported_name_strings)
 *         dotted_name = EncodedString(dotted_name)
 *         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_13, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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":1312
 *     return Nodes.StatListNode(pos, stats = stats)
 * 
 * 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_3);
  __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_encoded_name);
  __Pyx_XDECREF(__pyx_v_import_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1404
 *     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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_imported_name", 0);

  /* "Cython/Compiler/Parsing.py":1405
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1406
 * 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":1407
 *     pos = s.position()
 *     kind = None
 *     if is_cimport and s.systring in imported_name_kinds:             # <<<<<<<<<<<<<<
 *         kind = s.systring
 *         s.next()
 */
  if ((__pyx_v_is_cimport != 0)) {
    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_imported_name_kinds, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_2 != 0);
  } else {
    __pyx_t_3 = (__pyx_v_is_cimport != 0);
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1408
 *     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":1409
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1410
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1411
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_as_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1412
 *     name = p_ident(s)
 *     as_name = p_as_name(s)
 *     return (pos, name, as_name, kind)             # <<<<<<<<<<<<<<
 * 
 * def p_dotted_name(s, as_allowed):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_INCREF(__pyx_v_as_name);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_as_name);
  __Pyx_GIVEREF(__pyx_v_as_name);
  __Pyx_INCREF(__pyx_v_kind);
  PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_kind);
  __Pyx_GIVEREF(__pyx_v_kind);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1404
 *     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":1414
 *     return (pos, name, as_name, kind)
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_dotted_name", 0);

  /* "Cython/Compiler/Parsing.py":1415
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1416
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_target_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1417
 *     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":1418
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_target_name);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_target_name);
  __Pyx_GIVEREF(__pyx_v_target_name);
  __pyx_v_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1419
 *     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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":1420
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1421
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1421; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1422
 *         s.next()
 *         names.append(p_ident(s))
 *     if as_allowed:             # <<<<<<<<<<<<<<
 *         as_name = p_as_name(s)
 *     return (pos, target_name, u'.'.join(names), as_name)
 */
  __pyx_t_2 = (__pyx_v_as_allowed != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1423
 *         names.append(p_ident(s))
 *     if as_allowed:
 *         as_name = p_as_name(s)             # <<<<<<<<<<<<<<
 *     return (pos, target_name, 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_filename = __pyx_f[0]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_as_name, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":1424
 *     if as_allowed:
 *         as_name = p_as_name(s)
 *     return (pos, target_name, u'.'.join(names), as_name)             # <<<<<<<<<<<<<<
 * 
 * def p_as_name(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__33, __pyx_v_names); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __Pyx_INCREF(__pyx_v_target_name);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_target_name);
  __Pyx_GIVEREF(__pyx_v_target_name);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_as_name);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_as_name);
  __Pyx_GIVEREF(__pyx_v_as_name);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1414
 *     return (pos, name, as_name, kind)
 * 
 * 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_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":1426
 *     return (pos, target_name, u'.'.join(names), as_name)
 * 
 * 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;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_as_name", 0);

  /* "Cython/Compiler/Parsing.py":1427
 * 
 * def p_as_name(s):
 *     if s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return p_ident(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1428
 * def p_as_name(s):
 *     if s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return 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_filename = __pyx_f[0]; __pyx_lineno = 1428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1429
 *     if s.sy == 'IDENT' and s.systring == 'as':
 *         s.next()
 *         return p_ident(s)             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1431
 *         return p_ident(s)
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * def p_assert_statement(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1426
 *     return (pos, target_name, u'.'.join(names), as_name)
 * 
 * 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_4);
  __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":1433
 *         return None
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_assert_statement", 0);

  /* "Cython/Compiler/Parsing.py":1435
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1436
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1437
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cond = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1438
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1439
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1440
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1442
 *         value = p_test(s)
 *     else:
 *         value = None             # <<<<<<<<<<<<<<
 *     return Nodes.AssertStatNode(pos, cond = cond, value = value)
 * 
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_value = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1443
 *     else:
 *         value = None
 *     return Nodes.AssertStatNode(pos, cond = cond, value = value)             # <<<<<<<<<<<<<<
 * 
 * statement_terminators = cython.declare(set, set([';', 'NEWLINE', 'EOF']))
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_cond, __pyx_v_cond) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __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":1433
 *         return None
 * 
 * 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":1447
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_if_statement", 0);

  /* "Cython/Compiler/Parsing.py":1449
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1450
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1451
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_if_clauses = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1452
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1453
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1454
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1455
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_else_clause = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1456
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);

  /* "Cython/Compiler/Parsing.py":1457
 *     else_clause = p_else_clause(s)
 *     return Nodes.IfStatNode(pos,
 *         if_clauses = if_clauses, else_clause = else_clause)             # <<<<<<<<<<<<<<
 * 
 * def p_if_clause(s):
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_if_clauses, __pyx_v_if_clauses) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1456
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __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":1447
 * 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":1459
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_if_clause", 0);

  /* "Cython/Compiler/Parsing.py":1460
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1461
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_test = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1462
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1463
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":1464
 *     body = p_suite(s)
 *     return Nodes.IfClauseNode(pos,
 *         condition = test, body = body)             # <<<<<<<<<<<<<<
 * 
 * def p_else_clause(s):
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_condition, __pyx_v_test) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1463
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __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":1459
 *         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":1466
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_else_clause", 0);

  /* "Cython/Compiler/Parsing.py":1467
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1468
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1469
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1471
 *         return p_suite(s)
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * def p_while_statement(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1466
 *         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":1473
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_while_statement", 0);

  /* "Cython/Compiler/Parsing.py":1475
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1476
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1477
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_test = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1478
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1479
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_else_clause = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1480
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":1481
 *     else_clause = p_else_clause(s)
 *     return Nodes.WhileStatNode(pos,
 *         condition = test, body = body,             # <<<<<<<<<<<<<<
 *         else_clause = else_clause)
 * 
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_condition, __pyx_v_test) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1482
 *     return Nodes.WhileStatNode(pos,
 *         condition = test, body = body,
 *         else_clause = else_clause)             # <<<<<<<<<<<<<<
 * 
 * def p_for_statement(s):
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1480
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__; goto __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":1473
 *         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":1484
 *         else_clause = else_clause)
 * 
 * def p_for_statement(s):             # <<<<<<<<<<<<<<
 *     # 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) {
  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;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_for_statement", 0);

  /* "Cython/Compiler/Parsing.py":1486
 * def p_for_statement(s):
 *     # s.sy == 'for'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=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_filename = __pyx_f[0]; __pyx_lineno = 1486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1487
 *     # s.sy == 'for'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     kw = p_for_bounds(s, allow_testlist=True)
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1488
 *     pos = s.position()
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=True)             # <<<<<<<<<<<<<<
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.allow_testlist = 1;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_bounds(__pyx_v_s, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_kw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1489
 *     s.next()
 *     kw = p_for_bounds(s, allow_testlist=True)
 *     body = p_suite(s)             # <<<<<<<<<<<<<<
 *     else_clause = p_else_clause(s)
 *     kw.update(body = body, else_clause = else_clause)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1490
 *     kw = p_for_bounds(s, allow_testlist=True)
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)             # <<<<<<<<<<<<<<
 *     kw.update(body = body, else_clause = else_clause)
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_else_clause = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1491
 *     body = p_suite(s)
 *     else_clause = p_else_clause(s)
 *     kw.update(body = body, else_clause = else_clause)             # <<<<<<<<<<<<<<
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_kw, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__; goto __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":1492
 *     else_clause = p_else_clause(s)
 *     kw.update(body = body, else_clause = else_clause)
 *     return Nodes.ForStatNode(pos, **kw)             # <<<<<<<<<<<<<<
 * 
 * def p_for_bounds(s, allow_testlist=True):
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  if (unlikely(__pyx_v_kw == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_t_1 = __pyx_v_kw;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __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_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1484
 *         else_clause = else_clause)
 * 
 * def p_for_statement(s):             # <<<<<<<<<<<<<<
 *     # 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_XDECREF(__pyx_t_5);
  __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":1494
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 * def p_for_bounds(s, allow_testlist=True):             # <<<<<<<<<<<<<<
 *     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);
  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;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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;
    }
  }

  /* "Cython/Compiler/Parsing.py":1495
 * 
 * def p_for_bounds(s, allow_testlist=True):
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1496
 * def p_for_bounds(s, allow_testlist=True):
 *     target = p_for_target(s)
 *     if s.sy == 'in':             # <<<<<<<<<<<<<<
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist)
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_in, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1497
 *     target = p_for_target(s)
 *     if s.sy == 'in':
 *         s.next()             # <<<<<<<<<<<<<<
 *         iterator = p_for_iterator(s, allow_testlist)
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1498
 *     if s.sy == 'in':
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist)             # <<<<<<<<<<<<<<
 *         return dict( target = target, iterator = iterator )
 *     elif not s.in_python_file:
 */
    __pyx_t_3.__pyx_n = 1;
    __pyx_t_3.allow_testlist = __pyx_v_allow_testlist;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_iterator(__pyx_v_s, &__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_iterator = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1499
 *         s.next()
 *         iterator = p_for_iterator(s, allow_testlist)
 *         return dict( target = target, iterator = iterator )             # <<<<<<<<<<<<<<
 *     elif not s.in_python_file:
 *         if s.sy == 'from':
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_v_target) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_iterator, __pyx_v_iterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_r = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1500
 *         iterator = p_for_iterator(s, allow_testlist)
 *         return dict( target = target, iterator = iterator )
 *     elif not s.in_python_file:             # <<<<<<<<<<<<<<
 *         if s.sy == 'from':
 *             s.next()
 */
  __pyx_t_2 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1501
 *         return dict( target = target, iterator = iterator )
 *     elif not s.in_python_file:
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1502
 *     elif not s.in_python_file:
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1503
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_bound1 = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1506
 *         else:
 *             # Support shorter "for a <= x < b" syntax
 *             bound1, target = target, None             # <<<<<<<<<<<<<<
 *         rel1 = p_for_from_relation(s)
 *         name2_pos = s.position()
 */
      __pyx_t_1 = __pyx_v_target;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_4 = Py_None;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v_bound1 = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_4);
      __pyx_t_4 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1507
 *             # 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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_rel1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1508
 *             bound1, target = target, None
 *         rel1 = p_for_from_relation(s)
 *         name2_pos = s.position()             # <<<<<<<<<<<<<<
 *         name2 = p_ident(s)
 *         rel2_pos = s.position()
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_name2_pos = ((PyObject*)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1509
 *         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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_name2 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1510
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_rel2_pos = ((PyObject*)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1511
 *         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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_from_relation(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_rel2 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1512
 *         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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_bound2 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1513
 *         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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_for_from_step(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_step = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1514
 *         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_5 = (__pyx_t_2 != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1515
 *         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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_name2_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name2_pos);
      __Pyx_GIVEREF(__pyx_v_name2_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1517
 *             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")
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_is_name); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_2 = ((!__pyx_t_5) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1518
 *         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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_pos); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_kp_u_Target_of_for_from_statement_mus);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_Target_of_for_from_statement_mus);
        __Pyx_GIVEREF(__pyx_kp_u_Target_of_for_from_statement_mus);
        __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L6;
      }

      /* "Cython/Compiler/Parsing.py":1520
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_name2, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __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_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1521
 *                     "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_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_name2_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_name2_pos);
        __Pyx_GIVEREF(__pyx_v_name2_pos);
        __Pyx_INCREF(__pyx_kp_u_Variable_name_in_for_from_range);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_Variable_name_in_for_from_range);
        __Pyx_GIVEREF(__pyx_kp_u_Variable_name_in_for_from_range);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1523
 *                 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_7 = __Pyx_GetItemInt(__pyx_v_rel1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_rel2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1524
 *                     "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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_rel2_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_rel2_pos);
      __Pyx_GIVEREF(__pyx_v_rel2_pos);
      __Pyx_INCREF(__pyx_kp_u_Relation_directions_in_for_from);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Relation_directions_in_for_from);
      __Pyx_GIVEREF(__pyx_kp_u_Relation_directions_in_for_from);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "Cython/Compiler/Parsing.py":1526
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_target, __pyx_v_target) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1527
 *                 "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_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1528
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1529
 *                     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_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1530
 *                     relation1 = rel1,
 *                     relation2 = rel2,
 *                     bound2 = bound2,             # <<<<<<<<<<<<<<
 *                     step = step,
 *                     )
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_bound2, __pyx_v_bound2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1531
 *                     relation2 = rel2,
 *                     bound2 = bound2,
 *                     step = step,             # <<<<<<<<<<<<<<
 *                     )
 *     else:
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_step, __pyx_v_step) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_r = ((PyObject*)__pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1534
 *                     )
 *     else:
 *         s.expect('in')             # <<<<<<<<<<<<<<
 *         return {}
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1535
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __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":1494
 *     return Nodes.ForStatNode(pos, **kw)
 * 
 * def p_for_bounds(s, allow_testlist=True):             # <<<<<<<<<<<<<<
 *     target = p_for_target(s)
 *     if s.sy == 'in':
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":1537
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_for_from_relation", 0);

  /* "Cython/Compiler/Parsing.py":1538
 * 
 * def p_for_from_relation(s):
 *     if s.sy in inequality_relations:             # <<<<<<<<<<<<<<
 *         op = s.sy
 *         s.next()
 */
  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_inequality_relations, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1539
 * 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":1540
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1541
 *         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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1543
 *         return op
 *     else:
 *         s.error("Expected one of '<', '<=', '>' '>='")             # <<<<<<<<<<<<<<
 * 
 * def p_for_from_step(s):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __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":1537
 *         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":1545
 *         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;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_for_from_step", 0);

  /* "Cython/Compiler/Parsing.py":1546
 * 
 * def p_for_from_step(s):
 *     if s.sy == 'IDENT' and s.systring == 'by':             # <<<<<<<<<<<<<<
 *         s.next()
 *         step = p_bit_expr(s)
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_by, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1547
 * 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_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_filename = __pyx_f[0]; __pyx_lineno = 1547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1548
 *     if s.sy == 'IDENT' and s.systring == 'by':
 *         s.next()
 *         step = p_bit_expr(s)             # <<<<<<<<<<<<<<
 *         return step
 *     else:
 */
    __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_bit_expr(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_step = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":1549
 *         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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1551
 *         return step
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * inequality_relations = cython.declare(set, set(['<', '<=', '>', '>=']))
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1545
 *         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_4);
  __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":1555
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_target", 0);

  /* "Cython/Compiler/Parsing.py":1556
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1557
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1558
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1559
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1560
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_expr);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    __pyx_v_exprs = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1561
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":1562
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1563
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1564
 *             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":1565
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L5_break:;

    /* "Cython/Compiler/Parsing.py":1566
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_exprs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1566; __pyx_clineno = __LINE__; goto __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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1568
 *         return ExprNodes.TupleNode(pos, args = exprs)
 *     else:
 *         return expr             # <<<<<<<<<<<<<<
 * 
 * def p_for_target(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_expr);
    __pyx_r = __pyx_v_expr;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1555
 * 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":1570
 *         return expr
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_for_target", 0);

  /* "Cython/Compiler/Parsing.py":1571
 * 
 * def p_for_target(s):
 *     return p_target(s, 'in')             # <<<<<<<<<<<<<<
 * 
 * def p_for_iterator(s, allow_testlist=True):
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1570
 *         return expr
 * 
 * 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":1573
 *     return p_target(s, 'in')
 * 
 * def p_for_iterator(s, allow_testlist=True):             # <<<<<<<<<<<<<<
 *     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);
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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;
    }
  }

  /* "Cython/Compiler/Parsing.py":1574
 * 
 * def p_for_iterator(s, allow_testlist=True):
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1575
 * def p_for_iterator(s, allow_testlist=True):
 *     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":1576
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1578
 *         expr = p_testlist(s)
 *     else:
 *         expr = p_or_test(s)             # <<<<<<<<<<<<<<
 *     return ExprNodes.IteratorNode(pos, sequence = expr)
 * 
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_or_test(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expr = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1579
 *     else:
 *         expr = p_or_test(s)
 *     return ExprNodes.IteratorNode(pos, sequence = expr)             # <<<<<<<<<<<<<<
 * 
 * def p_try_statement(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IteratorNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_sequence, __pyx_v_expr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1579; __pyx_clineno = __LINE__; goto __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":1573
 *     return p_target(s, 'in')
 * 
 * def p_for_iterator(s, allow_testlist=True):             # <<<<<<<<<<<<<<
 *     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":1581
 *     return ExprNodes.IteratorNode(pos, sequence = expr)
 * 
 * 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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_try_statement", 0);

  /* "Cython/Compiler/Parsing.py":1583
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1584
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1585
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1586
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_except_clauses = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1587
 *     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":1588
 *     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_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_except, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_else, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (__pyx_t_4 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1589
 *     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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_except, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":1590
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_except_clauses, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":1591
 *         while s.sy == 'except':
 *             except_clauses.append(p_except_clause(s))
 *         if s.sy == 'else':             # <<<<<<<<<<<<<<
 *             s.next()
 *             else_clause = p_suite(s)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_else, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1592
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1593
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_else_clause, __pyx_t_1);
      __pyx_t_1 = 0;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":1594
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);

    /* "Cython/Compiler/Parsing.py":1595
 *             else_clause = p_suite(s)
 *         body = Nodes.TryExceptStatNode(pos,
 *             body = body, except_clauses = except_clauses,             # <<<<<<<<<<<<<<
 *             else_clause = else_clause)
 *         if s.sy != 'finally':
 */
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_except_clauses, __pyx_v_except_clauses) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1596
 *         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_7, __pyx_n_s_else_clause, __pyx_v_else_clause) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1594
 *             s.next()
 *             else_clause = p_suite(s)
 *         body = Nodes.TryExceptStatNode(pos,             # <<<<<<<<<<<<<<
 *             body = body, except_clauses = except_clauses,
 *             else_clause = else_clause)
 */
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_body, __pyx_t_8);
    __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1597
 *             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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_finally, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1598
 *             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;
    }
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1600
 *             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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_finally, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1601
 *         # 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_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_filename = __pyx_f[0]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1602
 *     if s.sy == 'finally':
 *         s.next()
 *         finally_clause = p_suite(s)             # <<<<<<<<<<<<<<
 *         return Nodes.TryFinallyStatNode(pos,
 *             body = body, finally_clause = finally_clause)
 */
    __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_v_finally_clause = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "Cython/Compiler/Parsing.py":1603
 *         s.next()
 *         finally_clause = p_suite(s)
 *         return Nodes.TryFinallyStatNode(pos,             # <<<<<<<<<<<<<<
 *             body = body, finally_clause = finally_clause)
 *     else:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_TryFinallyStatNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "Cython/Compiler/Parsing.py":1604
 *         finally_clause = p_suite(s)
 *         return Nodes.TryFinallyStatNode(pos,
 *             body = body, finally_clause = finally_clause)             # <<<<<<<<<<<<<<
 *     else:
 *         s.error("Expected 'except' or 'finally'")
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_finally_clause, __pyx_v_finally_clause) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1603
 *         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_8, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1606
 *             body = body, finally_clause = finally_clause)
 *     else:
 *         s.error("Expected 'except' or 'finally'")             # <<<<<<<<<<<<<<
 * 
 * def p_except_clause(s):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1581
 *     return ExprNodes.IteratorNode(pos, sequence = expr)
 * 
 * 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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":1608
 *         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;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_except_clause", 0);

  /* "Cython/Compiler/Parsing.py":1610
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1611
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1612
 *     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":1613
 *     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":1614
 *     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":1615
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1616
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1616; __pyx_clineno = __LINE__; goto __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":1618
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1618; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1618; __pyx_clineno = __LINE__; goto __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":1619
 *         # 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_filename = __pyx_f[0]; __pyx_lineno = 1619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_exc_type, __pyx_t_1);
      __pyx_t_1 = 0;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1621
 *             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):
 */
      __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_exc_type);
      PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_exc_type);
      __Pyx_GIVEREF(__pyx_v_exc_type);
      __Pyx_DECREF_SET(__pyx_v_exc_type, __pyx_t_1);
      __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1622
 *         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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1623
 *             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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_4) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_7 = __pyx_t_6;
        } else {
          __pyx_t_7 = __pyx_t_4;
        }
        __pyx_t_4 = __pyx_t_7;
      } else {
        __pyx_t_4 = __pyx_t_2;
      }
      __pyx_t_2 = __pyx_t_4;
    } else {
      __pyx_t_2 = __pyx_t_3;
    }
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1624
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1625
 *                            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_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF_SET(__pyx_v_exc_value, __pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":1626
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1628
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1629
 *             # Py3 syntax requires a name here
 *             s.next()
 *             pos2 = s.position()             # <<<<<<<<<<<<<<
 *             name = p_ident(s)
 *             exc_value = ExprNodes.NameNode(pos2, name = name)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_pos2 = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1630
 *             s.next()
 *             pos2 = s.position()
 *             name = p_ident(s)             # <<<<<<<<<<<<<<
 *             exc_value = ExprNodes.NameNode(pos2, name = name)
 *             is_except_as = True
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_v_name = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1631
 *             pos2 = s.position()
 *             name = p_ident(s)
 *             exc_value = ExprNodes.NameNode(pos2, name = name)             # <<<<<<<<<<<<<<
 *             is_except_as = True
 *     body = p_suite(s)
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos2);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos2);
      __Pyx_GIVEREF(__pyx_v_pos2);
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __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_DECREF_SET(__pyx_v_exc_value, __pyx_t_9);
      __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":1632
 *             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;
      goto __pyx_L5;
    }
    __pyx_L5:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1633
 *             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_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_v_body = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":1634
 *             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_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_ExceptClauseNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":1635
 *     body = p_suite(s)
 *     return Nodes.ExceptClauseNode(pos,
 *         pattern = exc_type, target = exc_value,             # <<<<<<<<<<<<<<
 *         body = body, is_except_as=is_except_as)
 * 
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pattern, __pyx_v_exc_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_v_exc_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1636
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_except_as); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_is_except_as, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":1634
 *             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_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __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;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1608
 *         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_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __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":1638
 *         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;
  int __pyx_t_10;
  char const *__pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_include_statement", 0);

  /* "Cython/Compiler/Parsing.py":1639
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1640
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1641
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1641; __pyx_clineno = __LINE__; goto __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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1641; __pyx_clineno = __LINE__; goto __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":1642
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":1643
 *     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":1644
 *     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":1645
 *     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_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_find_include_file); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_include_file_name);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_include_file_name);
    __Pyx_GIVEREF(__pyx_v_include_file_name);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_include_file_path = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":1646
 *         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)
 *             f = Utils.open_source_file(include_file_path, mode="rU")
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_include_file_path); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1647
 *         include_file_path = s.context.find_include_file(include_file_name, pos)
 *         if include_file_path:
 *             s.included_files.append(include_file_name)             # <<<<<<<<<<<<<<
 *             f = Utils.open_source_file(include_file_path, mode="rU")
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_s->included_files, __pyx_v_include_file_name); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":1648
 *         if include_file_path:
 *             s.included_files.append(include_file_name)
 *             f = Utils.open_source_file(include_file_path, mode="rU")             # <<<<<<<<<<<<<<
 *             source_desc = FileSourceDescriptor(include_file_path)
 *             s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Utils, __pyx_n_s_open_source_file); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_include_file_path);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_include_file_path);
      __Pyx_GIVEREF(__pyx_v_include_file_path);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_mode, __pyx_n_u_rU) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_f = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1649
 *             s.included_files.append(include_file_name)
 *             f = Utils.open_source_file(include_file_path, mode="rU")
 *             source_desc = FileSourceDescriptor(include_file_path)             # <<<<<<<<<<<<<<
 *             s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 *             try:
 */
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_include_file_path);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_include_file_path);
      __Pyx_GIVEREF(__pyx_v_include_file_path);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_source_desc = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":1650
 *             f = Utils.open_source_file(include_file_path, mode="rU")
 *             source_desc = FileSourceDescriptor(include_file_path)
 *             s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)             # <<<<<<<<<<<<<<
 *             try:
 *                 tree = p_statement_list(s2, ctx)
 */
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_f);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_f);
      __Pyx_GIVEREF(__pyx_v_f);
      __Pyx_INCREF(__pyx_v_source_desc);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_source_desc);
      __Pyx_GIVEREF(__pyx_v_source_desc);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_encoding); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_source_encoding, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_s->parse_comments); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_parse_comments, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6Cython_8Compiler_8Scanning_PyrexScanner)), __pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_s2 = ((struct __pyx_obj_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1651
 *             source_desc = FileSourceDescriptor(include_file_path)
 *             s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 *             try:             # <<<<<<<<<<<<<<
 *                 tree = p_statement_list(s2, ctx)
 *             finally:
 */
      /*try:*/ {

        /* "Cython/Compiler/Parsing.py":1652
 *             s2 = PyrexScanner(f, source_desc, s, source_encoding=f.encoding, parse_comments=s.parse_comments)
 *             try:
 *                 tree = p_statement_list(s2, ctx)             # <<<<<<<<<<<<<<
 *             finally:
 *                 f.close()
 */
        __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(__pyx_v_s2, __pyx_v_ctx, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_tree = __pyx_t_1;
        __pyx_t_1 = 0;
      }

      /* "Cython/Compiler/Parsing.py":1654
 *                 tree = p_statement_list(s2, ctx)
 *             finally:
 *                 f.close()             # <<<<<<<<<<<<<<
 *             return tree
 *         else:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __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;
          goto __pyx_L7;
        }
        /*exception exit:*/{
          __pyx_L6_error:;
          __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 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;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_12);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename;
          {
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_close); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __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);
          }
          __Pyx_XGIVEREF(__pyx_t_12);
          __Pyx_XGIVEREF(__pyx_t_13);
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
          __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11;
          goto __pyx_L1_error;
          __pyx_L9_error:;
          if (PY_MAJOR_VERSION >= 3) {
            __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);
          }
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
          goto __pyx_L1_error;
        }
        __pyx_L7:;
      }

      /* "Cython/Compiler/Parsing.py":1655
 *             finally:
 *                 f.close()
 *             return tree             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_tree);
      __pyx_r = __pyx_v_tree;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1657
 *             return tree
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.PassStatNode(pos)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_None);
      __pyx_r = Py_None;
      goto __pyx_L0;
    }
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1659
 *             return None
 *     else:
 *         return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_with_statement(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1638
 *         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":1661
 *         return Nodes.PassStatNode(pos)
 * 
 * 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;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_with_statement", 0);

  /* "Cython/Compiler/Parsing.py":1662
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1663
 * 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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_template, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
    __pyx_t_3 = (!(__pyx_v_s->in_python_file != 0));
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1664
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1666
 *         node = p_with_template(s)
 *     else:
 *         node = p_with_items(s)             # <<<<<<<<<<<<<<
 *     return node
 * 
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1667
 *     else:
 *         node = p_with_items(s)
 *     return node             # <<<<<<<<<<<<<<
 * 
 * def p_with_items(s):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_node);
  __pyx_r = __pyx_v_node;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1661
 *         return Nodes.PassStatNode(pos)
 * 
 * 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":1669
 *     return node
 * 
 * def p_with_items(s):             # <<<<<<<<<<<<<<
 *     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) {
  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;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_with_items", 0);

  /* "Cython/Compiler/Parsing.py":1670
 * 
 * def p_with_items(s):
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         state = s.systring
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1671
 * def p_with_items(s):
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):             # <<<<<<<<<<<<<<
 *         state = s.systring
 *         s.next()
 */
  __pyx_t_2 = (!(__pyx_v_s->in_python_file != 0));
  if (__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
      __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_filename = __pyx_f[0]; __pyx_lineno = 1671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) {
        __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_gil, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_6 = __pyx_t_5;
      } else {
        __pyx_t_6 = __pyx_t_4;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __pyx_t_6;
      __pyx_t_6 = __pyx_t_4;
    } else {
      __pyx_t_6 = __pyx_t_3;
    }
    __pyx_t_3 = __pyx_t_6;
  } else {
    __pyx_t_3 = __pyx_t_2;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":1672
 *     pos = s.position()
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         state = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         if s.sy == ',':
 */
    __pyx_t_1 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_state = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1673
 *     if not s.in_python_file and s.sy == 'IDENT' and s.systring in ('nogil', 'gil'):
 *         state = s.systring
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1674
 *         state = s.systring
 *         s.next()
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             body = p_with_items(s)
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1675
 *         s.next()
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             body = p_with_items(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_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":1676
 *         if s.sy == ',':
 *             s.next()
 *             body = p_with_items(s)             # <<<<<<<<<<<<<<
 *         else:
 *             body = p_suite(s)
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_body = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1678
 *             body = p_with_items(s)
 *         else:
 *             body = p_suite(s)             # <<<<<<<<<<<<<<
 *         return Nodes.GILStatNode(pos, state = state, body = body)
 *     else:
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_body = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1679
 *         else:
 *             body = p_suite(s)
 *         return Nodes.GILStatNode(pos, state = state, body = body)             # <<<<<<<<<<<<<<
 *     else:
 *         manager = p_test(s)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_GILStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_state, __pyx_v_state) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __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_r = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1681
 *         return Nodes.GILStatNode(pos, state = state, body = body)
 *     else:
 *         manager = p_test(s)             # <<<<<<<<<<<<<<
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':
 */
    __pyx_t_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_v_manager = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":1682
 *     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":1683
 *         manager = p_test(s)
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':             # <<<<<<<<<<<<<<
 *             s.next()
 *             target = p_starred_expr(s)
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __pyx_t_2;
    } else {
      __pyx_t_6 = __pyx_t_3;
    }
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1684
 *         target = None
 *         if s.sy == 'IDENT' and s.systring == 'as':
 *             s.next()             # <<<<<<<<<<<<<<
 *             target = p_starred_expr(s)
 *         if s.sy == ',':
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":1685
 *         if s.sy == 'IDENT' and s.systring == 'as':
 *             s.next()
 *             target = p_starred_expr(s)             # <<<<<<<<<<<<<<
 *         if s.sy == ',':
 *             s.next()
 */
      __pyx_t_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_starred_expr(__pyx_v_s); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_9);
      __pyx_t_9 = 0;
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1686
 *             s.next()
 *             target = p_starred_expr(s)
 *         if s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             body = p_with_items(s)
 */
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1687
 *             target = p_starred_expr(s)
 *         if s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             body = p_with_items(s)
 *         else:
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":1688
 *         if s.sy == ',':
 *             s.next()
 *             body = p_with_items(s)             # <<<<<<<<<<<<<<
 *         else:
 *             body = p_suite(s)
 */
      __pyx_t_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_items(__pyx_v_s); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_v_body = __pyx_t_9;
      __pyx_t_9 = 0;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1690
 *             body = p_with_items(s)
 *         else:
 *             body = p_suite(s)             # <<<<<<<<<<<<<<
 *     return Nodes.WithStatNode(pos, manager = manager,
 *                               target = target, body = body)
 */
      __pyx_t_9 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_v_body = __pyx_t_9;
      __pyx_t_9 = 0;
    }
    __pyx_L6:;
  }

  /* "Cython/Compiler/Parsing.py":1691
 *         else:
 *             body = p_suite(s)
 *     return Nodes.WithStatNode(pos, manager = manager,             # <<<<<<<<<<<<<<
 *                               target = target, body = body)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_WithStatNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_manager, __pyx_v_manager) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1692
 *             body = p_suite(s)
 *     return Nodes.WithStatNode(pos, manager = manager,
 *                               target = target, body = body)             # <<<<<<<<<<<<<<
 * 
 * def p_with_template(s):
 */
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_target, __pyx_v_target) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1691
 *         else:
 *             body = p_suite(s)
 *     return Nodes.WithStatNode(pos, manager = manager,             # <<<<<<<<<<<<<<
 *                               target = target, body = body)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1669
 *     return node
 * 
 * def p_with_items(s):             # <<<<<<<<<<<<<<
 *     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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __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":1694
 *                               target = target, body = body)
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_with_template", 0);

  /* "Cython/Compiler/Parsing.py":1695
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1696
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_templates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1697
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1698
 *     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__32, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1699
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1700
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1701
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1701; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":1702
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1703
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1704
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1705
 *         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__40, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1706
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1707
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1708
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1709
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1710
 *         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_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_body_ctx = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1711
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1712
 *         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_5 = __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_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_func_or_var = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1713
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 1713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":1714
 *         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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1716
 *         return func_or_var
 *     else:
 *         error(pos, "Syntax error in template function declaration")             # <<<<<<<<<<<<<<
 * 
 * def p_simple_statement(s, first_statement = 0):
 */
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Syntax_error_in_template_functio);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_kp_u_Syntax_error_in_template_functio);
    __Pyx_GIVEREF(__pyx_kp_u_Syntax_error_in_template_functio);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":1694
 *                               target = target, body = body)
 * 
 * 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_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":1718
 *         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;
  int __pyx_t_4;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_from_import_statement __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1720
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1721
 *     #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_filename = __pyx_f[0]; __pyx_lineno = 1721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1722
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1723
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1724
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1725
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1726
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1727
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1728
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1729
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1730
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1731
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1732
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1733
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1734
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1735
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1736
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1737
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1738
 *     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_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_1) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cimport, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = (__pyx_t_4 != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1739
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1740
 *     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_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1741
 *         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_5.__pyx_n = 1;
    __pyx_t_5.first_statement = __pyx_v_first_statement;
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_from_import_statement(__pyx_v_s, &__pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1742
 *     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_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_yield, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1743
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1744
 *     elif s.sy == 'yield':
 *         node = p_yield_statement(s)
 *     elif s.sy == 'assert':             # <<<<<<<<<<<<<<
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_assert, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1745
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1746
 *     elif s.sy == 'assert':
 *         node = p_assert_statement(s)
 *     elif s.sy == 'pass':             # <<<<<<<<<<<<<<
 *         node = p_pass_statement(s)
 *     else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1747
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1749
 *         node = p_pass_statement(s)
 *     else:
 *         node = p_expression_or_assignment(s)             # <<<<<<<<<<<<<<
 *     return node
 * 
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_expression_or_assignment(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_node = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1750
 *     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":1718
 *         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":1752
 *     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;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1755
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stat = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1756
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1757
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stats = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1758
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1758; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1758; __pyx_clineno = __LINE__; goto __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":1759
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1760
 *     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__71, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_4) break;

    /* "Cython/Compiler/Parsing.py":1762
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1763
 *         #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_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_4) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __pyx_t_3;
    } else {
      __pyx_t_6 = __pyx_t_4;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1764
 *         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":1765
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1765; __pyx_clineno = __LINE__; goto __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":1766
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_IsInstance(__pyx_v_stat, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":1767
 *         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":1768
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1769
 *             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":1771
 *         first_statement = False
 * 
 *     if not stats:             # <<<<<<<<<<<<<<
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 */
  __pyx_t_6 = (__pyx_v_stats != Py_None) && (PyList_GET_SIZE(__pyx_v_stats) != 0);
  __pyx_t_4 = ((!__pyx_t_6) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1772
 * 
 *     if not stats:
 *         stat = Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     elif len(stats) == 1:
 *         stat = stats[0]
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_8);
    __pyx_t_8 = 0;
    goto __pyx_L8;
  }

  /* "Cython/Compiler/Parsing.py":1773
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = ((__pyx_t_9 == 1) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":1774
 *         stat = Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 *         stat = stats[0]             # <<<<<<<<<<<<<<
 *     else:
 *         stat = Nodes.StatListNode(pos, stats = stats)
 */
    __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_8);
    __pyx_t_8 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1776
 *         stat = stats[0]
 *     else:
 *         stat = Nodes.StatListNode(pos, stats = stats)             # <<<<<<<<<<<<<<
 *     s.expect_newline("Syntax error in simple statement list")
 *     return stat
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stats, __pyx_v_stats) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_stat, __pyx_t_10);
    __pyx_t_10 = 0;
  }
  __pyx_L8:;

  /* "Cython/Compiler/Parsing.py":1777
 *     else:
 *         stat = Nodes.StatListNode(pos, stats = stats)
 *     s.expect_newline("Syntax error in simple statement list")             # <<<<<<<<<<<<<<
 *     return stat
 * 
 */
  __pyx_t_11.__pyx_n = 1;
  __pyx_t_11.message = __pyx_kp_u_Syntax_error_in_simple_statement;
  __pyx_t_10 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_11); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":1778
 *         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":1752
 *     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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __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":1780
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_compile_time_expr", 0);

  /* "Cython/Compiler/Parsing.py":1781
 * 
 * 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":1782
 * 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":1783
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_expr = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":1784
 *     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":1785
 *     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":1780
 *     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":1787
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_DEF_statement", 0);

  /* "Cython/Compiler/Parsing.py":1788
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1789
 * 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":1790
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1791
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1792
 *     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__36, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1793
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_expr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1794
 *     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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_compile_time_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_denv));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_denv));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_denv));
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __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_v_value = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":1796
 *     value = expr.compile_time_value(denv)
 *     #print "p_DEF_statement: %s = %r" % (name, value) ###
 *     denv.declare(name, value)             # <<<<<<<<<<<<<<
 *     s.expect_newline()
 *     return Nodes.PassStatNode(pos)
 */
  __pyx_t_4 = ((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_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":1797
 *     #print "p_DEF_statement: %s = %r" % (name, value) ###
 *     denv.declare(name, value)
 *     s.expect_newline()             # <<<<<<<<<<<<<<
 *     return Nodes.PassStatNode(pos)
 * 
 */
  __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":1798
 *     denv.declare(name, value)
 *     s.expect_newline()
 *     return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 * 
 * def p_IF_statement(s, ctx):
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 1798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1798; __pyx_clineno = __LINE__; goto __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":1787
 *     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_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":1800
 *     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;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_IF_statement", 0);

  /* "Cython/Compiler/Parsing.py":1801
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1802
 * 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":1803
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_current_eval = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1804
 *     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":1805
 *     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":1806
 *     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":1807
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1808
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1808; __pyx_clineno = __LINE__; goto __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":1809
 *         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_2 = __Pyx_PyObject_IsTrue(__pyx_v_current_eval); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr, __pyx_n_s_compile_time_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(((PyObject *)__pyx_v_denv));
      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_denv));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_denv));
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __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_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __pyx_t_4;
      __pyx_t_4 = 0;
    } else {
      __Pyx_INCREF(__pyx_v_current_eval);
      __pyx_t_3 = __pyx_v_current_eval;
    }
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_s->compile_time_eval = __pyx_t_2;

    /* "Cython/Compiler/Parsing.py":1810
 *         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_5.__pyx_n = 1;
    __pyx_t_5.ctx = __pyx_v_ctx;
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_body, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1811
 *         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":1812
 *         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":1813
 *         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);
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1814
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1815
 *             current_eval = 0
 *         if s.sy != 'ELIF':
 *             break             # <<<<<<<<<<<<<<
 *     if s.sy == 'ELSE':
 *         s.next()
 */
      goto __pyx_L4_break;
    }
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":1816
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1817
 *             break
 *     if s.sy == 'ELSE':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.compile_time_eval = current_eval
 *         body = p_suite(s, ctx)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1818
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_s->compile_time_eval = __pyx_t_2;

    /* "Cython/Compiler/Parsing.py":1819
 *         s.next()
 *         s.compile_time_eval = current_eval
 *         body = p_suite(s, ctx)             # <<<<<<<<<<<<<<
 *         if current_eval:
 *             result = body
 */
    __pyx_t_5.__pyx_n = 1;
    __pyx_t_5.ctx = __pyx_v_ctx;
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_body, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":1820
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1821
 *         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);
      goto __pyx_L8;
    }
    __pyx_L8:;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":1822
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = ((!__pyx_t_2) != 0);
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":1823
 *             result = body
 *     if not result:
 *         result = Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     s.compile_time_eval = saved_eval
 *     return result
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1823; __pyx_clineno = __LINE__; goto __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_SET(__pyx_v_result, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L9;
  }
  __pyx_L9:;

  /* "Cython/Compiler/Parsing.py":1824
 *     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":1825
 *         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":1800
 *     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_3);
  __Pyx_XDECREF(__pyx_t_4);
  __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":1827
 *     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;
  PyObject *__pyx_v_bad_toks = NULL;
  long __pyx_v_overridable;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_v_tup = 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;
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1828
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cdef_flag = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1829
 * 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":1830
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1831
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__pyx_t_4 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1832
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1835
 *         #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_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1836
 *         #    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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DEF, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1837
 *         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_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_DEF_statement(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1838
 *     elif s.sy == 'DEF':
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':             # <<<<<<<<<<<<<<
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == 'DECORATOR':
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IF, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1839
 *         return p_DEF_statement(s)
 *     elif s.sy == 'IF':
 *         return p_IF_statement(s, ctx)             # <<<<<<<<<<<<<<
 *     elif s.sy == 'DECORATOR':
 *         if ctx.level not in ('module', 'class', 'c_class', 'function', 'property', 'module_pxd', 'c_class_pxd', 'other'):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_IF_statement(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1840
 *     elif s.sy == 'IF':
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == 'DECORATOR':             # <<<<<<<<<<<<<<
 *         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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DECORATOR, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1841
 *         return p_IF_statement(s, ctx)
 *     elif s.sy == 'DECORATOR':
 *         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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_class_2, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_2;
    }
    if (__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_c_class, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_function, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_3;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_property, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_2;
    }
    if (__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_3;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_other, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1842
 *     elif s.sy == 'DECORATOR':
 *         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_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1843
 *         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)
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1843; __pyx_clineno = __LINE__; goto __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":1844
 *             s.error('decorator not allowed here')
 *         s.level = ctx.level
 *         decorators = p_decorators(s)             # <<<<<<<<<<<<<<
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_decorators(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __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":1845
 *         s.level = ctx.level
 *         decorators = p_decorators(s)
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'             # <<<<<<<<<<<<<<
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:
 *             s.error("Decorators can only be followed by functions or classes")
 */
    __Pyx_INCREF(__pyx_tuple__74);
    __pyx_v_bad_toks = __pyx_tuple__74;

    /* "Cython/Compiler/Parsing.py":1846
 *         decorators = p_decorators(s)
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:             # <<<<<<<<<<<<<<
 *             s.error("Decorators can only be followed by functions or classes")
 *     elif s.sy == 'pass' and cdef_flag:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_allow_struct_enum_decorator); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = ((!__pyx_t_2) != 0);
    if (__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_bad_toks, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = (__pyx_t_2 != 0);
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1847
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:
 *             s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *     elif s.sy == 'pass' and cdef_flag:
 *         # empty cdef block
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1847; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L6;
    }
    __pyx_L6:;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":1848
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:
 *             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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_cdef_flag); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = __pyx_t_3;
  } else {
    __pyx_t_2 = __pyx_t_4;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1850
 *     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_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":1852
 *         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":1853
 * 
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1854
 *     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":1855
 *     if s.sy == 'cdef':
 *         cdef_flag = 1
 *         s.next()             # <<<<<<<<<<<<<<
 *     elif s.sy == 'cpdef':
 *         cdef_flag = 1
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L7;
  }

  /* "Cython/Compiler/Parsing.py":1856
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1857
 *         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":1858
 *     elif s.sy == 'cpdef':
 *         cdef_flag = 1
 *         overridable = 1             # <<<<<<<<<<<<<<
 *         s.next()
 *     if cdef_flag:
 */
    __pyx_v_overridable = 1;

    /* "Cython/Compiler/Parsing.py":1859
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 1859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":1860
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1861
 *         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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_2;
    }
    if (__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_function, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_c_class, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_3;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1862
 *     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_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L9;
    }
    __pyx_L9:;

    /* "Cython/Compiler/Parsing.py":1863
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1863; __pyx_clineno = __LINE__; goto __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":1864
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_overridable); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_overridable, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __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_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_node = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":1865
 *         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_2 = (__pyx_v_decorators != Py_None);
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1866
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CVarDefNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CClassDefNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_1 = 0;
      __pyx_t_5 = 0;
      __pyx_t_7 = 0;
      __pyx_v_tup = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1867
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":1868
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_7);
        __pyx_t_8 = 0;
        __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_tup, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF_SET(__pyx_v_tup, ((PyObject*)__pyx_t_7));
        __pyx_t_7 = 0;
        goto __pyx_L11;
      }
      __pyx_L11:;

      /* "Cython/Compiler/Parsing.py":1869
 *             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_3 = PyObject_IsInstance(__pyx_v_node, __pyx_v_tup); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1870
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L12;
      }
      __pyx_L12:;

      /* "Cython/Compiler/Parsing.py":1871
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "Cython/Compiler/Parsing.py":1872
 *                 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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1874
 *         return node
 *     else:
 *         if ctx.api:             # <<<<<<<<<<<<<<
 *             s.error("'api' not allowed with this statement", fatal=False)
 *         elif s.sy == 'def':
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1875
 *     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_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__78, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L13;
    }

    /* "Cython/Compiler/Parsing.py":1876
 *         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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_def, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1879
 *             # 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_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_n_u_pxd, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_4 = __pyx_t_3;
      } else {
        __pyx_t_4 = __pyx_t_2;
      }
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":1880
 *             # 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_filename = __pyx_f[0]; __pyx_lineno = 1880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1880; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L14;
      }
      __pyx_L14:;

      /* "Cython/Compiler/Parsing.py":1881
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1881; __pyx_clineno = __LINE__; goto __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":1882
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1882; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1883
 *             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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1884
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_4) {
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_function, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_3 = __pyx_t_2;
      } else {
        __pyx_t_3 = __pyx_t_4;
      }
      if (__pyx_t_3) {
        __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_class_2, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_2 = __pyx_t_4;
      } else {
        __pyx_t_2 = __pyx_t_3;
      }
      if (__pyx_t_2) {
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_other, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_4 = __pyx_t_3;
      } else {
        __pyx_t_4 = __pyx_t_2;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_2 = (__pyx_t_4 != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1885
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__80, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L15;
      }
      __pyx_L15:;

      /* "Cython/Compiler/Parsing.py":1886
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1887
 *                 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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_include, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1888
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {
        __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_3 = __pyx_t_4;
      } else {
        __pyx_t_3 = __pyx_t_2;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1889
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__81, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L16;
      }
      __pyx_L16:;

      /* "Cython/Compiler/Parsing.py":1890
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1891
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_c_class, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_2) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {
        __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_property, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_10 = __pyx_t_4;
      } else {
        __pyx_t_10 = __pyx_t_3;
      }
      __pyx_t_3 = __pyx_t_10;
    } else {
      __pyx_t_3 = __pyx_t_2;
    }
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":1892
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":1893
 *         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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_property, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_10 = __pyx_t_2;
    } else {
      __pyx_t_10 = __pyx_t_3;
    }
    if (__pyx_t_10) {

      /* "Cython/Compiler/Parsing.py":1894
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1896
 *             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:
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_10) {
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_property, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_2 = __pyx_t_3;
      } else {
        __pyx_t_2 = __pyx_t_10;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_10 = (__pyx_t_2 != 0);
      if (__pyx_t_10) {

        /* "Cython/Compiler/Parsing.py":1897
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_v_node = __pyx_t_7;
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":1898
 *             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_10 = (__pyx_v_node != Py_None);
        __pyx_t_2 = (__pyx_t_10 != 0);
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":1899
 *                 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":1900
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__82, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L17;
      }
      __pyx_L17:;

      /* "Cython/Compiler/Parsing.py":1901
 *                     return node
 *                 s.error("Executable statement not allowed here")
 *             if s.sy == 'if':             # <<<<<<<<<<<<<<
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_if, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1902
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }

      /* "Cython/Compiler/Parsing.py":1903
 *             if s.sy == 'if':
 *                 return p_if_statement(s)
 *             elif s.sy == 'while':             # <<<<<<<<<<<<<<
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_while, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1904
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }

      /* "Cython/Compiler/Parsing.py":1905
 *             elif s.sy == 'while':
 *                 return p_while_statement(s)
 *             elif s.sy == 'for':             # <<<<<<<<<<<<<<
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_for, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1906
 *                 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); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }

      /* "Cython/Compiler/Parsing.py":1907
 *             elif s.sy == 'for':
 *                 return p_for_statement(s)
 *             elif s.sy == 'try':             # <<<<<<<<<<<<<<
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_try, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1908
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }

      /* "Cython/Compiler/Parsing.py":1909
 *             elif s.sy == 'try':
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':             # <<<<<<<<<<<<<<
 *                 return p_with_statement(s)
 *             else:
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_with, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1910
 *                 return p_try_statement(s)
 *             elif s.sy == 'with':
 *                 return p_with_statement(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 return p_simple_statement_list(
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_with_statement(__pyx_v_s); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":1912
 *                 return p_with_statement(s)
 *             else:
 *                 return p_simple_statement_list(             # <<<<<<<<<<<<<<
 *                     s, ctx, first_statement = first_statement)
 * 
 */
        __Pyx_XDECREF(__pyx_r);

        /* "Cython/Compiler/Parsing.py":1913
 *             else:
 *                 return p_simple_statement_list(
 *                     s, ctx, first_statement = first_statement)             # <<<<<<<<<<<<<<
 * 
 * def p_statement_list(s, ctx, first_statement = 0):
 */
        __pyx_t_11.__pyx_n = 1;
        __pyx_t_11.first_statement = __pyx_v_first_statement;
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_simple_statement_list(__pyx_v_s, __pyx_v_ctx, &__pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
    }
    __pyx_L13:;
  }

  /* "Cython/Compiler/Parsing.py":1827
 *     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_5);
  __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_bad_toks);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF(__pyx_v_tup);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":1915
 *                     s, ctx, first_statement = first_statement)
 * 
 * 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;
  int __pyx_t_4;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1917
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1918
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stats = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1919
 *     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_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__pyx_t_4 != 0);
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":1920
 *     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_5.__pyx_n = 1;
    __pyx_t_5.first_statement = __pyx_v_first_statement;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement(__pyx_v_s, __pyx_v_ctx, &__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __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":1921
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_IsInstance(__pyx_v_stat, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1922
 *         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":1923
 *         if isinstance(stat, Nodes.PassStatNode):
 *             continue
 *         stats.append(stat)             # <<<<<<<<<<<<<<
 *         first_statement = False
 *     if not stats:
 */
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_stats, __pyx_v_stat); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":1924
 *             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":1925
 *         stats.append(stat)
 *         first_statement = False
 *     if not stats:             # <<<<<<<<<<<<<<
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 */
  __pyx_t_4 = (__pyx_v_stats != Py_None) && (PyList_GET_SIZE(__pyx_v_stats) != 0);
  __pyx_t_2 = ((!__pyx_t_4) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1926
 *         first_statement = False
 *     if not stats:
 *         return Nodes.PassStatNode(pos)             # <<<<<<<<<<<<<<
 *     elif len(stats) == 1:
 *         return stats[0]
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PassStatNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":1927
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = ((__pyx_t_9 == 1) != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":1928
 *         return Nodes.PassStatNode(pos)
 *     elif len(stats) == 1:
 *         return stats[0]             # <<<<<<<<<<<<<<
 *     else:
 *         return Nodes.StatListNode(pos, stats = stats)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1930
 *         return stats[0]
 *     else:
 *         return Nodes.StatListNode(pos, stats = stats)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_StatListNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stats, __pyx_v_stats) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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":1915
 *                     s, ctx, first_statement = first_statement)
 * 
 * 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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __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":1933
 * 
 * 
 * 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__83;
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1934
 * 
 * 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 = Py_False;
  __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_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __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":1933
 * 
 * 
 * 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":1937
 * 
 * 
 * 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) {
  PyObject *__pyx_v_with_doc_only = ((PyObject *)Py_False);
  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;
  int __pyx_t_6;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1938
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":1939
 * 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":1940
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1941
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1942
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1943
 *         s.next()
 *         s.expect_indent()
 *         if with_doc_only:             # <<<<<<<<<<<<<<
 *             doc = p_doc_string(s)
 *         body = p_statement_list(s, ctx)
 */
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_with_doc_only); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":1944
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_doc, __pyx_t_2);
      __pyx_t_2 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":1945
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_body = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":1946
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":1948
 *         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'):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":1949
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__84, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1950
 *         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_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_module, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_1) {
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __pyx_t_5;
    } else {
      __pyx_t_6 = __pyx_t_1;
    }
    if (!__pyx_t_6) {
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_function, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_1;
    } else {
      __pyx_t_5 = __pyx_t_6;
    }
    if (!__pyx_t_5) {
      __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_other, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = __pyx_t_6;
    } else {
      __pyx_t_1 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = (__pyx_t_1 != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":1951
 *             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_filename = __pyx_f[0]; __pyx_lineno = 1951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_body = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1953
 *             body = p_simple_statement_list(s, ctx)
 *         else:
 *             body = p_pass_statement(s)             # <<<<<<<<<<<<<<
 *             s.expect_newline("Syntax error in declarations")
 *     if not with_doc_only:
 */
      __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_pass_statement(__pyx_v_s, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_body = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":1954
 *         else:
 *             body = p_pass_statement(s)
 *             s.expect_newline("Syntax error in declarations")             # <<<<<<<<<<<<<<
 *     if not with_doc_only:
 *         doc, body = _extract_docstring(body)
 */
      __pyx_t_7.__pyx_n = 1;
      __pyx_t_7.message = __pyx_kp_u_Syntax_error_in_declarations;
      __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__; goto __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":1955
 *             body = p_pass_statement(s)
 *             s.expect_newline("Syntax error in declarations")
 *     if not with_doc_only:             # <<<<<<<<<<<<<<
 *         doc, body = _extract_docstring(body)
 *     return doc, body
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_doc_only); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = ((!__pyx_t_5) != 0);
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":1956
 *             s.expect_newline("Syntax error in declarations")
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(__pyx_t_4 != Py_None)) {
      PyObject* sequence = __pyx_t_4;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":1957
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_doc);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_doc);
  __Pyx_GIVEREF(__pyx_v_doc);
  __Pyx_INCREF(__pyx_v_body);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_body);
  __Pyx_GIVEREF(__pyx_v_body);
  __pyx_r = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1937
 * 
 * 
 * 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":1960
 * 
 * 
 * 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;
  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;
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":1968
 *     Returns: (positional_args, keyword_args)
 *     """
 *     positional_args = []             # <<<<<<<<<<<<<<
 *     keyword_args = []
 *     pos_idx = 0
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_positional_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1969
 *     """
 *     positional_args = []
 *     keyword_args = []             # <<<<<<<<<<<<<<
 *     pos_idx = 0
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_keyword_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1970
 *     positional_args = []
 *     keyword_args = []
 *     pos_idx = 0             # <<<<<<<<<<<<<<
 * 
 *     while s.sy not in end_sy_set:
 */
  __pyx_v_pos_idx = 0;

  /* "Cython/Compiler/Parsing.py":1972
 *     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_Contains(__pyx_v_s->sy, __pyx_v_end_sy_set, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":1973
 * 
 *     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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__34, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":1974
 *     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_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__85, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":1976
 *             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":1977
 * 
 *         parsed_type = False
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':             # <<<<<<<<<<<<<<
 *             ident = s.systring
 *             s.next() # s.sy is '='
 */
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {
      __pyx_t_6 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->peek(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_2 = __pyx_t_3;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":1978
 *         parsed_type = False
 *         if s.sy == 'IDENT' and s.peek()[0] == '=':
 *             ident = s.systring             # <<<<<<<<<<<<<<
 *             s.next() # s.sy is '='
 *             s.next()
 */
      __pyx_t_5 = __pyx_v_s->systring;
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_ident, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1979
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1980
 *             ident = s.systring
 *             s.next() # s.sy is '='
 *             s.next()             # <<<<<<<<<<<<<<
 *             if looking_at_expr(s):
 *                 arg = p_test(s)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "Cython/Compiler/Parsing.py":1981
 *             s.next() # s.sy is '='
 *             s.next()
 *             if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *             else:
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1982
 *             s.next()
 *             if looking_at_expr(s):
 *                 arg = p_test(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)
 */
        __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_5);
        __pyx_t_5 = 0;
        goto __pyx_L7;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":1984
 *                 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,
 */
        __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_base_type, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":1985
 *             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_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_empty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_declarator, __pyx_t_5);
        __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":1986
 *                 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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CComplexBaseTypeNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_base_type, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);

        /* "Cython/Compiler/Parsing.py":1987
 *                 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(
 */
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "Cython/Compiler/Parsing.py":1986
 *                 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_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __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_XDECREF_SET(__pyx_v_arg, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":1988
 *                 arg = Nodes.CComplexBaseTypeNode(base_type.pos,
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True             # <<<<<<<<<<<<<<
 *             keyword_node = ExprNodes.IdentifierStringNode(
 *                 arg.pos, value = EncodedString(ident))
 */
        __pyx_v_parsed_type = 1;
      }
      __pyx_L7:;

      /* "Cython/Compiler/Parsing.py":1989
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                 arg.pos, value = EncodedString(ident))
 *             keyword_args.append((keyword_node, arg))
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_IdentifierStringNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":1990
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(
 *                 arg.pos, value = EncodedString(ident))             # <<<<<<<<<<<<<<
 *             keyword_args.append((keyword_node, arg))
 *             was_keyword = True
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);

      /* "Cython/Compiler/Parsing.py":1989
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                 arg.pos, value = EncodedString(ident))
 *             keyword_args.append((keyword_node, arg))
 */
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);

      /* "Cython/Compiler/Parsing.py":1990
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(
 *                 arg.pos, value = EncodedString(ident))             # <<<<<<<<<<<<<<
 *             keyword_args.append((keyword_node, arg))
 *             was_keyword = True
 */
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_ident);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_ident);
      __Pyx_GIVEREF(__pyx_v_ident);
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_5, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_value, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1989
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 *             keyword_node = ExprNodes.IdentifierStringNode(             # <<<<<<<<<<<<<<
 *                 arg.pos, value = EncodedString(ident))
 *             keyword_args.append((keyword_node, arg))
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __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_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_keyword_node, __pyx_t_8);
      __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1991
 *             keyword_node = ExprNodes.IdentifierStringNode(
 *                 arg.pos, value = EncodedString(ident))
 *             keyword_args.append((keyword_node, arg))             # <<<<<<<<<<<<<<
 *             was_keyword = True
 * 
 */
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_keyword_node);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_keyword_node);
      __Pyx_GIVEREF(__pyx_v_keyword_node);
      __Pyx_INCREF(__pyx_v_arg);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_arg);
      __Pyx_GIVEREF(__pyx_v_arg);
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_keyword_args, __pyx_t_8); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "Cython/Compiler/Parsing.py":1992
 *                 arg.pos, value = EncodedString(ident))
 *             keyword_args.append((keyword_node, arg))
 *             was_keyword = True             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __pyx_v_was_keyword = 1;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":1995
 * 
 *         else:
 *             if looking_at_expr(s):             # <<<<<<<<<<<<<<
 *                 arg = p_test(s)
 *             else:
 */
      __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":1996
 *         else:
 *             if looking_at_expr(s):
 *                 arg = p_test(s)             # <<<<<<<<<<<<<<
 *             else:
 *                 base_type = p_c_base_type(s, templates = templates)
 */
        __pyx_t_8 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_8);
        __pyx_t_8 = 0;
        goto __pyx_L8;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":1998
 *                 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,
 */
        __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_base_type, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":1999
 *             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_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(((PyObject *)__pyx_v_s));
        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_s));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
        __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_empty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __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_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_declarator, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "Cython/Compiler/Parsing.py":2000
 *                 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_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CComplexBaseTypeNode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_base_type, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);

        /* "Cython/Compiler/Parsing.py":2001
 *                 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)
 */
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "Cython/Compiler/Parsing.py":2000
 *                 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_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2002
 *                 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_L8:;

      /* "Cython/Compiler/Parsing.py":2003
 *                     base_type = base_type, declarator = declarator)
 *                 parsed_type = True
 *             positional_args.append(arg)             # <<<<<<<<<<<<<<
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 */
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_positional_args, __pyx_v_arg); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":2004
 *                 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":2005
 *             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_10 = PyList_GET_SIZE(__pyx_v_keyword_args); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = ((__pyx_t_10 > 0) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2006
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                         pos=arg.pos)
 * 
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);

        /* "Cython/Compiler/Parsing.py":2007
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",
 *                         pos=arg.pos)             # <<<<<<<<<<<<<<
 * 
 *         if s.sy != ',':
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_pos, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "Cython/Compiler/Parsing.py":2006
 *             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_7, __pyx_tuple__86, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;
        goto __pyx_L9;
      }
      __pyx_L9:;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2009
 *                         pos=arg.pos)
 * 
 *         if s.sy != ',':             # <<<<<<<<<<<<<<
 *             if s.sy not in end_sy_set:
 *                 if parsed_type:
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2010
 * 
 *         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_2 = (__Pyx_PySequence_Contains(__pyx_v_s->sy, __pyx_v_end_sy_set, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = (__pyx_t_2 != 0);
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":2011
 *         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_4 = (__pyx_v_parsed_type != 0);
        if (__pyx_t_4) {

          /* "Cython/Compiler/Parsing.py":2012
 *             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_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_6 = PyUnicode_Join(__pyx_kp_u_or_2, __pyx_v_end_sy_set); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_Unmatched_s, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
          goto __pyx_L12;
        }
        __pyx_L12:;
        goto __pyx_L11;
      }
      __pyx_L11:;

      /* "Cython/Compiler/Parsing.py":2013
 *                 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":2014
 *                     s.error("Unmatched %s" % " or ".join(end_sy_set))
 *             break
 *         s.next()             # <<<<<<<<<<<<<<
 *     return positional_args, keyword_args
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":2015
 *             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_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_positional_args);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_positional_args);
  __Pyx_GIVEREF(__pyx_v_positional_args);
  __Pyx_INCREF(__pyx_v_keyword_args);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_keyword_args);
  __Pyx_GIVEREF(__pyx_v_keyword_args);
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":1960
 * 
 * 
 * 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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":2017
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2020
 *     # 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__29, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2021
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2023
 *         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):
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2017
 *     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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_c_base_type (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s,&__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)) != 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_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __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":2025
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_calling_convention", 0);

  /* "Cython/Compiler/Parsing.py":2026
 * 
 * def p_calling_convention(s):
 *     if s.sy == 'IDENT' and s.systring in calling_convention_words:             # <<<<<<<<<<<<<<
 *         result = 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_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2027
 * 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":2028
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2029
 *         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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2031
 *         return result
 *     else:
 *         return ""             # <<<<<<<<<<<<<<
 * 
 * calling_convention_words = cython.declare(
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u__48);
    __pyx_r = __pyx_kp_u__48;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2025
 *         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":2036
 *     set, set(["__stdcall", "__cdecl", "__fastcall"]))
 * 
 * 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_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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2038
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2039
 *     # s.sy == '('
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     base_type = p_c_base_type(s, templates = templates)
 *     declarator = p_c_declarator(s, empty = 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_filename = __pyx_f[0]; __pyx_lineno = 2039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2040
 *     pos = s.position()
 *     s.next()
 *     base_type = p_c_base_type(s, templates = templates)             # <<<<<<<<<<<<<<
 *     declarator = p_c_declarator(s, empty = 1)
 *     s.expect(')')
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2040; __pyx_clineno = __LINE__; goto __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":2041
 *     s.next()
 *     base_type = p_c_base_type(s, templates = templates)
 *     declarator = p_c_declarator(s, empty = 1)             # <<<<<<<<<<<<<<
 *     s.expect(')')
 *     type_node = Nodes.CComplexBaseTypeNode(pos,
 */
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_empty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __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":2042
 *     base_type = p_c_base_type(s, templates = templates)
 *     declarator = p_c_declarator(s, empty = 1)
 *     s.expect(')')             # <<<<<<<<<<<<<<
 *     type_node = Nodes.CComplexBaseTypeNode(pos,
 *             base_type = base_type, declarator = declarator)
 */
  __pyx_t_5 = ((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_5 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2043
 *     declarator = p_c_declarator(s, empty = 1)
 *     s.expect(')')
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":2044
 *     s.expect(')')
 *     type_node = Nodes.CComplexBaseTypeNode(pos,
 *             base_type = base_type, declarator = declarator)             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         if is_memoryviewslice_access(s):
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2043
 *     declarator = p_c_declarator(s, empty = 1)
 *     s.expect(')')
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __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":2045
 *     type_node = Nodes.CComplexBaseTypeNode(pos,
 *             base_type = base_type, declarator = declarator)
 *     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__32, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2046
 *             base_type = base_type, declarator = declarator)
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2047
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_4);
      __pyx_t_4 = 0;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2049
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)             # <<<<<<<<<<<<<<
 *     return type_node
 * 
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_4);
      __pyx_t_4 = 0;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2050
 *         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":2036
 *     set, set(["__stdcall", "__cdecl", "__fastcall"]))
 * 
 * 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_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2053
 * 
 * 
 * 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;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_c_base_type __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2055
 * 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":2056
 *     #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":2057
 *     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":2058
 *     signed = 1
 *     longness = 0
 *     complex = 0             # <<<<<<<<<<<<<<
 *     module_path = []
 *     pos = s.position()
 */
  __pyx_v_complex = 0;

  /* "Cython/Compiler/Parsing.py":2059
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module_path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2060
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2061
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2062
 *     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_1 = PyUnicode_Format(__pyx_kp_u_Expected_an_identifier_found_s, __pyx_v_s->sy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2063
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2064
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2065
 *     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_5.__pyx_n = 3;
    __pyx_t_5.self_flag = __pyx_v_self_flag;
    __pyx_t_5.nonempty = __pyx_v_nonempty;
    __pyx_t_5.templates = __pyx_v_templates;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, &__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_base_type = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2067
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __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":2068
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2070
 *     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":2071
 *         #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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      if (unlikely(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_3 = (__Pyx_PyDict_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_3;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2072
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types, __pyx_v_s->systring); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_7);
      if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
        PyObject* sequence = __pyx_t_7;
        #if CYTHON_COMPILING_IN_CPYTHON
        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_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        #if CYTHON_COMPILING_IN_CPYTHON
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_4);
        #else
        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;
        index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_4 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_9 = NULL;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_9 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_L8_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_signed, __pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_DECREF_SET(__pyx_v_longness, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2073
 *         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_7 = __pyx_v_s->systring;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_name = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2074
 *             signed, longness = special_basic_c_types[s.systring]
 *             name = s.systring
 *             s.next()             # <<<<<<<<<<<<<<
 *         else:
 *             signed, longness = p_sign_and_longness(s)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2076
 *             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
 */
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_sign_and_longness(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
        PyObject* sequence = __pyx_t_7;
        #if CYTHON_COMPILING_IN_CPYTHON
        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_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        #if CYTHON_COMPILING_IN_CPYTHON
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;
        index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_6)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_9 = 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_9 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_L10_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_signed, __pyx_t_4);
      __pyx_t_4 = 0;
      __Pyx_DECREF_SET(__pyx_v_longness, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":2077
 *         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_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_8) {
        __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_3 = __pyx_t_2;
      } else {
        __pyx_t_3 = __pyx_t_8;
      }
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2078
 *             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_7 = __pyx_v_s->systring;
        __Pyx_INCREF(__pyx_t_7);
        __pyx_v_name = __pyx_t_7;
        __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2079
 *             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_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_filename = __pyx_f[0]; __pyx_lineno = 2079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L11;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":2081
 *                 s.next()
 *             else:
 *                 name = 'int'  # long [int], short [int], long [int] complex, etc.             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT' and s.systring == 'complex':
 *             complex = 1
 */
        __Pyx_INCREF(__pyx_n_u_int);
        __pyx_v_name = __pyx_n_u_int;
      }
      __pyx_L11:;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2082
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_complex, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_8;
    } else {
      __pyx_t_2 = __pyx_t_3;
    }
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2083
 *                 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":2084
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 2084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L12;
    }
    __pyx_L12:;
    goto __pyx_L5;
  }

  /* "Cython/Compiler/Parsing.py":2085
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2087
 *     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_7 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_v_name = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2088
 *         #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_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_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2089
 *         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__33, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_3) break;

      /* "Cython/Compiler/Parsing.py":2090
 *         s.next()
 *         while s.sy == '.':
 *             module_path.append(name)             # <<<<<<<<<<<<<<
 *             s.next()
 *             name = p_ident(s)
 */
      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_module_path, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":2091
 *         while s.sy == '.':
 *             module_path.append(name)
 *             s.next()             # <<<<<<<<<<<<<<
 *             name = p_ident(s)
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2092
 *             module_path.append(name)
 *             s.next()
 *             name = p_ident(s)             # <<<<<<<<<<<<<<
 *     else:
 *         name = s.systring
 */
      __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_7);
      __pyx_t_7 = 0;
    }
    goto __pyx_L5;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2094
 *             name = p_ident(s)
 *     else:
 *         name = s.systring             # <<<<<<<<<<<<<<
 *         s.next()
 *         if nonempty and s.sy != 'IDENT':
 */
    __pyx_t_7 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_v_name = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2095
 *     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_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_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2096
 *         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_3 = __pyx_v_nonempty;
    if (__pyx_t_3) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_2;
    } else {
      __pyx_t_8 = __pyx_t_3;
    }
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2098
 *         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_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_8) {

        /* "Cython/Compiler/Parsing.py":2099
 *             # 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_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_filename = __pyx_f[0]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2100
 *             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_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (!__pyx_t_8) {
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__34, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          if (!__pyx_t_3) {

            /* "Cython/Compiler/Parsing.py":2101
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            if (!__pyx_t_2) {
              __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              if (__pyx_t_11) {
                __pyx_t_12 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
                __pyx_t_13 = __pyx_t_12;
              } else {
                __pyx_t_13 = __pyx_t_11;
              }
              __pyx_t_11 = __pyx_t_13;
            } else {
              __pyx_t_11 = __pyx_t_2;
            }
            __pyx_t_2 = __pyx_t_11;
          } else {
            __pyx_t_2 = __pyx_t_3;
          }
          __pyx_t_3 = __pyx_t_2;
        } else {
          __pyx_t_3 = __pyx_t_8;
        }
        if (__pyx_t_3) {

          /* "Cython/Compiler/Parsing.py":2102
 *                 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_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__87, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L17;
        }
        /*else*/ {

          /* "Cython/Compiler/Parsing.py":2104
 *                     s.put_back('(', '(')
 *                 else:
 *                     s.put_back('(', '(')             # <<<<<<<<<<<<<<
 *                     s.put_back('IDENT', name)
 *                     name = None
 */
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__88, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "Cython/Compiler/Parsing.py":2105
 *                 else:
 *                     s.put_back('(', '(')
 *                     s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *                     name = None
 *             elif s.sy not in ('*', '**', '[', '&'):
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_n_u_IDENT);
          PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_n_u_IDENT);
          __Pyx_GIVEREF(__pyx_n_u_IDENT);
          __Pyx_INCREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "Cython/Compiler/Parsing.py":2106
 *                     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_L17:;
        goto __pyx_L16;
      }

      /* "Cython/Compiler/Parsing.py":2107
 *                     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_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__6, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {
        __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__34, Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_2 = __pyx_t_8;
      } else {
        __pyx_t_2 = __pyx_t_3;
      }
      if (__pyx_t_2) {
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__32, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_8 = __pyx_t_3;
      } else {
        __pyx_t_8 = __pyx_t_2;
      }
      if (__pyx_t_8) {
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__13, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_3 = __pyx_t_2;
      } else {
        __pyx_t_3 = __pyx_t_8;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_8 = (__pyx_t_3 != 0);
      if (__pyx_t_8) {

        /* "Cython/Compiler/Parsing.py":2108
 *                     name = None
 *             elif s.sy not in ('*', '**', '[', '&'):
 *                 s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *                 name = None
 * 
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_n_u_IDENT);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_n_u_IDENT);
        __Pyx_GIVEREF(__pyx_n_u_IDENT);
        __Pyx_INCREF(__pyx_v_name);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_name);
        __Pyx_GIVEREF(__pyx_v_name);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":2109
 *             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);
        goto __pyx_L16;
      }
      __pyx_L16:;
      goto __pyx_L15;
    }
    __pyx_L15:;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2111
 *                 name = None
 * 
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,             # <<<<<<<<<<<<<<
 *         name = name, module_path = module_path,
 *         is_basic_c_type = is_basic, signed = signed,
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CSimpleBaseTypeNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);

  /* "Cython/Compiler/Parsing.py":2112
 * 
 *     type_node = Nodes.CSimpleBaseTypeNode(pos,
 *         name = name, module_path = module_path,             # <<<<<<<<<<<<<<
 *         is_basic_c_type = is_basic, signed = signed,
 *         complex = complex, longness = longness,
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_module_path, __pyx_v_module_path) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2113
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_is_basic_c_type, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_signed, __pyx_v_signed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2114
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_complex, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_longness, __pyx_v_longness) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2115
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_is_self_arg, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2111
 *                 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_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __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_4); __pyx_t_4 = 0;
  __pyx_v_type_node = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2118
 * 
 *     #    declarations here.
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         if is_memoryviewslice_access(s):
 *             type_node = p_memoryviewslice_access(s, type_node)
 */
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":2119
 *     #    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_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2120
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_1);
      __pyx_t_1 = 0;
      goto __pyx_L19;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2122
 *             type_node = p_memoryviewslice_access(s, type_node)
 *         else:
 *             type_node = p_buffer_or_template(s, type_node, templates)             # <<<<<<<<<<<<<<
 * 
 *     if s.sy == '.':
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_type_node, __pyx_t_1);
      __pyx_t_1 = 0;
    }
    __pyx_L19:;
    goto __pyx_L18;
  }
  __pyx_L18:;

  /* "Cython/Compiler/Parsing.py":2124
 *             type_node = p_buffer_or_template(s, type_node, templates)
 * 
 *     if s.sy == '.':             # <<<<<<<<<<<<<<
 *         s.next()
 *         name = p_ident(s)
 */
  __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__33, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_8) {

    /* "Cython/Compiler/Parsing.py":2125
 * 
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2126
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2126; __pyx_clineno = __LINE__; goto __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":2127
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_type_node) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __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_DECREF_SET(__pyx_v_type_node, __pyx_t_7);
    __pyx_t_7 = 0;
    goto __pyx_L20;
  }
  __pyx_L20:;

  /* "Cython/Compiler/Parsing.py":2129
 *         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":2053
 * 
 * 
 * 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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":2131
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_buffer_or_template", 0);
  __Pyx_INCREF(__pyx_v_base_type_node);

  /* "Cython/Compiler/Parsing.py":2133
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2134
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2138
 *     # 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__89, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2138; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L4_unpacking_done:;
  }

  /* "Cython/Compiler/Parsing.py":2137
 *     # 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":2140
 *         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__40, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2142
 *     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__32, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":2143
 * 
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_base_type_node, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2145
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __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;

    /* "Cython/Compiler/Parsing.py":2146
 * 
 *     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_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2146; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":2148
 *         key_value_pairs = [
 *             ExprNodes.DictItemNode(pos=key.pos, key=key, value=value)
 *             for key, value in keyword_args             # <<<<<<<<<<<<<<
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,
 */
    if (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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext;
    }
    for (;;) {
      if (!__pyx_t_10 && PyList_CheckExact(__pyx_t_8)) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        #endif
      } else if (!__pyx_t_10 && PyTuple_CheckExact(__pyx_t_8)) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        #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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __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_CPYTHON
        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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        }
        #if CYTHON_COMPILING_IN_CPYTHON
        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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __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":2147
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
      __Pyx_GOTREF(__pyx_t_12);
      if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_pos, __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
      if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_value, __pyx_8genexpr3__pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
      __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_empty_tuple, __pyx_t_13); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2146; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __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_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2145
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __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":2150
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);

  /* "Cython/Compiler/Parsing.py":2151
 *         ])
 *     result = Nodes.TemplatedTypeNode(pos,
 *         positional_args = positional_args,             # <<<<<<<<<<<<<<
 *         keyword_args = keyword_dict,
 *         base_type_node = base_type_node)
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_positional_args, __pyx_v_positional_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2152
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2153
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2150
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __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":2154
 *         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":2131
 *     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":2156
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_bracketed_base_type", 0);

  /* "Cython/Compiler/Parsing.py":2158
 * 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_1 = __Pyx_PyObject_IsTrue(__pyx_v_empty); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nonempty); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (!__pyx_t_2);
    __pyx_t_2 = __pyx_t_3;
  } else {
    __pyx_t_2 = __pyx_t_1;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2160
 *     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":2161
 *         # 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_2 = __Pyx_PyObject_IsTrue(__pyx_v_empty); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = (!__pyx_t_2);
  if (__pyx_t_1) {
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nonempty); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2163
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2164
 *         # 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_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2166
 *             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:
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }
  }

  /* "Cython/Compiler/Parsing.py":2168
 *             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_3 = __Pyx_PyObject_IsTrue(__pyx_v_empty); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = ((!__pyx_t_3) != 0);
  if (__pyx_t_1) {
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_nonempty); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2172
 *         # 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_filename = __pyx_f[0]; __pyx_lineno = 2172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2173
 *         # 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_filename = __pyx_f[0]; __pyx_lineno = 2173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2175
 *             return p_memoryviewslice_access(s, base_type_node)
 *         else:
 *             return base_type_node             # <<<<<<<<<<<<<<
 * 
 * def is_memoryviewslice_access(s):
 */
      __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":2156
 *     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":2177
 *             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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_memoryviewslice_access", 0);

  /* "Cython/Compiler/Parsing.py":2182
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_s->sy);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s->sy);
  __Pyx_GIVEREF(__pyx_v_s->sy);
  __Pyx_INCREF(__pyx_v_s->systring);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_s->systring);
  __Pyx_GIVEREF(__pyx_v_s->systring);
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_saved = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2183
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2184
 *     saved = [(s.sy, s.systring)]
 *     s.next()
 *     retval = False             # <<<<<<<<<<<<<<
 *     if s.systring == ':':
 *         retval = True
 */
  __pyx_v_retval = 0;

  /* "Cython/Compiler/Parsing.py":2185
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2186
 *     retval = False
 *     if s.systring == ':':
 *         retval = True             # <<<<<<<<<<<<<<
 *     elif s.sy == 'INT':
 *         saved.append((s.sy, s.systring))
 */
    __pyx_v_retval = 1;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2187
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2188
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_s->sy);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_s->sy);
    __Pyx_GIVEREF(__pyx_v_s->sy);
    __Pyx_INCREF(__pyx_v_s->systring);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_s->systring);
    __Pyx_GIVEREF(__pyx_v_s->systring);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_saved, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2189
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2190
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2191
 *         s.next()
 *         if s.sy == ':':
 *             retval = True             # <<<<<<<<<<<<<<
 * 
 *     for sv in saved[::-1]:
 */
      __pyx_v_retval = 1;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2193
 *             retval = True
 * 
 *     for sv in saved[::-1]:             # <<<<<<<<<<<<<<
 *         s.put_back(*sv)
 * 
 */
  __pyx_t_2 = PyObject_GetItem(__pyx_v_saved, __pyx_slice__90); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __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_COMPILING_IN_CPYTHON
    __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_filename = __pyx_f[0]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    #endif
    __Pyx_XDECREF_SET(__pyx_v_sv, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2194
 * 
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PySequence_Tuple(__pyx_v_sv); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __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;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2196
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2177
 *             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":2198
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_memoryviewslice_access", 0);

  /* "Cython/Compiler/Parsing.py":2200
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2201
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2202
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    #if CYTHON_COMPILING_IN_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    __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_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __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":2204
 *     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 (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_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  for (;;) {
    if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #endif
    } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #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_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __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":2205
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = ((__pyx_t_6 < 2) != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":2206
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__91, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2206; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L5;
    }
    __pyx_L5:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2207
 *         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__40, NULL); if (unlikely(__pyx_t_7 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2208
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_indexes = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2209
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":2210
 *     indexes = make_slice_nodes(pos, subscripts)
 *     result = Nodes.MemoryViewSliceTypeNode(pos,
 *             base_type_node = base_type_node,             # <<<<<<<<<<<<<<
 *             axes = indexes)
 *     return result
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base_type_node, __pyx_v_base_type_node) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2211
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2209
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __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":2212
 *             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":2198
 *     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":2214
 *     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
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("looking_at_name", 0);

  /* "Cython/Compiler/Parsing.py":2215
 * 
 * def looking_at_name(s):
 *     return s.sy == 'IDENT' and not s.systring in calling_convention_words             # <<<<<<<<<<<<<<
 * 
 * def looking_at_expr(s):
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_calling_convention_words, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2214
 *     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_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __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":2217
 *     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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("looking_at_expr", 0);

  /* "Cython/Compiler/Parsing.py":2218
 * 
 * def looking_at_expr(s):
 *     if s.systring in base_type_start_words:             # <<<<<<<<<<<<<<
 *         return False
 *     elif s.sy == 'IDENT':
 */
  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2219
 * 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":2220
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2221
 *         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":2222
 *     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":2223
 *         is_type = False
 *         name = s.systring
 *         dotted_path = []             # <<<<<<<<<<<<<<
 *         s.next()
 * 
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_dotted_path = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2224
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2226
 *         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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":2227
 * 
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2228
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2229
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }

    /* "Cython/Compiler/Parsing.py":2231
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_s->sy);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_s->sy);
    __Pyx_GIVEREF(__pyx_v_s->sy);
    __Pyx_INCREF(__pyx_v_s->systring);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_s->systring);
    __Pyx_GIVEREF(__pyx_v_s->systring);
    __pyx_v_saved = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2232
 * 
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2233
 *         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);
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2234
 *         if s.sy == 'IDENT':
 *             is_type = True
 *         elif s.sy == '*' or s.sy == '**':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy in (')', ']')
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) {
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__34, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_1;
    } else {
      __pyx_t_5 = __pyx_t_2;
    }
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2235
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2236
 *         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_5 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_5) {
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_1 = __pyx_t_2;
      } else {
        __pyx_t_1 = __pyx_t_5;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __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":2237
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = PySequence_Tuple(__pyx_v_saved); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2238
 *             is_type = s.sy in (')', ']')
 *             s.put_back(*saved)
 *         elif s.sy == '(':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy == '*'
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2239
 *             s.put_back(*saved)
 *         elif s.sy == '(':
 *             s.next()             # <<<<<<<<<<<<<<
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2240
 *         elif s.sy == '(':
 *             s.next()
 *             is_type = s.sy == '*'             # <<<<<<<<<<<<<<
 *             s.put_back(*saved)
 *         elif s.sy == '[':
 */
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_kp_u__6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF_SET(__pyx_v_is_type, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2241
 *             s.next()
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)             # <<<<<<<<<<<<<<
 *         elif s.sy == '[':
 *             s.next()
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PySequence_Tuple(__pyx_v_saved); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":2242
 *             is_type = s.sy == '*'
 *             s.put_back(*saved)
 *         elif s.sy == '[':             # <<<<<<<<<<<<<<
 *             s.next()
 *             is_type = s.sy == ']'
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2243
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2244
 *         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__40, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF_SET(__pyx_v_is_type, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2245
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = PySequence_Tuple(__pyx_v_saved); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2247
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2248
 * 
 *         dotted_path.reverse()
 *         for p in dotted_path:             # <<<<<<<<<<<<<<
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')
 */
    __pyx_t_7 = __pyx_v_dotted_path; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
      #if CYTHON_COMPILING_IN_CPYTHON
      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #else
      __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      #endif
      __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":2249
 *         dotted_path.reverse()
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)             # <<<<<<<<<<<<<<
 *             s.put_back('.', '.')
 * 
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_n_u_IDENT);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_IDENT);
      __Pyx_GIVEREF(__pyx_n_u_IDENT);
      __Pyx_INCREF(__pyx_v_p);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_p);
      __Pyx_GIVEREF(__pyx_v_p);
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":2250
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')             # <<<<<<<<<<<<<<
 * 
 *         s.put_back('IDENT', name)
 */
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__92, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2252
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_IDENT);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_IDENT);
    __Pyx_GIVEREF(__pyx_n_u_IDENT);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2253
 * 
 *         s.put_back('IDENT', name)
 *         return not is_type and saved[0]             # <<<<<<<<<<<<<<
 *     else:
 *         return True
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_is_type); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_9 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_saved, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __pyx_t_3;
      __pyx_t_3 = 0;
    } else {
      __pyx_t_7 = __pyx_t_9;
      __pyx_t_9 = 0;
    }
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2255
 *         return not is_type and saved[0]
 *     else:
 *         return True             # <<<<<<<<<<<<<<
 * 
 * def looking_at_base_type(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2217
 *     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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __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":2257
 *         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
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("looking_at_base_type", 0);

  /* "Cython/Compiler/Parsing.py":2259
 * 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_1 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_base_type_start_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2257
 *         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_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __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":2261
 *     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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("looking_at_dotted_name", 0);

  /* "Cython/Compiler/Parsing.py":2262
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2263
 * 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":2264
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2265
 *         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__33, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2266
 *         s.next()
 *         result = s.sy == '.'
 *         s.put_back('IDENT', name)             # <<<<<<<<<<<<<<
 *         return result
 *     else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_put_back); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_IDENT);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_IDENT);
    __Pyx_GIVEREF(__pyx_n_u_IDENT);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __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":2267
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_r = __pyx_t_1;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2269
 *         return result
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def looking_at_call(s):
 */
    __pyx_r = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2261
 *     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_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":2271
 *         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) {
  PyObject *__pyx_v_position = NULL;
  PyObject *__pyx_v_result = NULL;
  int __pyx_r;
  __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;
  Py_ssize_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("looking_at_call", 0);

  /* "Cython/Compiler/Parsing.py":2276
 *     # 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 = PyInt_FromSsize_t(__pyx_v_s->__pyx_base.start_line); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_s->__pyx_base.start_col); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_position = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2277
 *     # 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_3 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_expr(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_kp_u__29, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2278
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = ((!__pyx_t_4) != 0);
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2279
 *     result = looking_at_expr(s) == u'('
 *     if not result:
 *         s.start_line, s.start_col = position             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    if (1) {
      PyObject* sequence = __pyx_v_position;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      __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_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      #endif
    }
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_s->__pyx_base.start_line = __pyx_t_6;
    __pyx_v_s->__pyx_base.start_col = __pyx_t_7;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2280
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2271
 *         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_1);
  __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_position);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2307
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_sign_and_longness", 0);

  /* "Cython/Compiler/Parsing.py":2308
 * 
 * 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":2309
 * 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":2310
 *     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_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {
      __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __pyx_t_2;
    } else {
      __pyx_t_3 = __pyx_t_1;
    }
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":2311
 *     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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_unsigned, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2312
 *     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;
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":2313
 *         if s.systring == 'unsigned':
 *             signed = 0
 *         elif s.systring == 'signed':             # <<<<<<<<<<<<<<
 *             signed = 2
 *         elif s.systring == 'short':
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_signed, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2314
 *             signed = 0
 *         elif s.systring == 'signed':
 *             signed = 2             # <<<<<<<<<<<<<<
 *         elif s.systring == 'short':
 *             longness = -1
 */
      __pyx_v_signed = 2;
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":2315
 *         elif s.systring == 'signed':
 *             signed = 2
 *         elif s.systring == 'short':             # <<<<<<<<<<<<<<
 *             longness = -1
 *         elif s.systring == 'long':
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_short, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2316
 *             signed = 2
 *         elif s.systring == 'short':
 *             longness = -1             # <<<<<<<<<<<<<<
 *         elif s.systring == 'long':
 *             longness += 1
 */
      __pyx_v_longness = -1;
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":2317
 *         elif s.systring == 'short':
 *             longness = -1
 *         elif s.systring == 'long':             # <<<<<<<<<<<<<<
 *             longness += 1
 *         s.next()
 */
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_long, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2318
 *             longness = -1
 *         elif s.systring == 'long':
 *             longness += 1             # <<<<<<<<<<<<<<
 *         s.next()
 *     return signed, longness
 */
      __pyx_v_longness = (__pyx_v_longness + 1);
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":2319
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "Cython/Compiler/Parsing.py":2320
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_longness); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __Pyx_GIVEREF(__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":2307
 *     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":2322
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_opt_cname", 0);

  /* "Cython/Compiler/Parsing.py":2323
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_literal = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2324
 * 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":2325
 *     literal = p_opt_string_literal(s, 'u')
 *     if literal is not None:
 *         cname = EncodedString(literal)             # <<<<<<<<<<<<<<
 *         cname.encoding = s.source_encoding
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_literal);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_literal);
    __Pyx_GIVEREF(__pyx_v_literal);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cname = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2326
 *     if literal is not None:
 *         cname = EncodedString(literal)
 *         cname.encoding = s.source_encoding             # <<<<<<<<<<<<<<
 *     else:
 *         cname = None
 */
    __pyx_t_5 = __pyx_v_s->source_encoding;
    __Pyx_INCREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_cname, __pyx_n_s_encoding, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2328
 *         cname.encoding = s.source_encoding
 *     else:
 *         cname = None             # <<<<<<<<<<<<<<
 *     return cname
 * 
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_cname = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2329
 *     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":2322
 *     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_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":2331
 *     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__93;
  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;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2338
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2339
 *     # 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__29, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2340
 *     pos = s.position()
 *     if s.sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name = EncodedString(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_filename = __pyx_f[0]; __pyx_lineno = 2340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2341
 *     if s.sy == '(':
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):             # <<<<<<<<<<<<<<
 *             base = Nodes.CNameDeclaratorNode(pos, name = EncodedString(u""), cname = None)
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__30, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) {
      __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_looking_at_name(__pyx_v_s); if (unlikely(__pyx_t_3 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2342
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name = EncodedString(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_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_tuple__94, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __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_base = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2343
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name = EncodedString(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_7 = __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_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_v_result = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2345
 *             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_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      __Pyx_INCREF(__pyx_v_ctx);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ctx);
      __Pyx_GIVEREF(__pyx_v_ctx);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_empty, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_is_type, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2346
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cmethod_flag, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2347
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_nonempty, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":2345
 *             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_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __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_v_result = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2349
 *                                     nonempty = nonempty,
 *                                     calling_convention_allowed = 1)
 *             s.expect(')')             # <<<<<<<<<<<<<<
 *     else:
 *         result = p_c_simple_declarator(s, ctx, empty, is_type, cmethod_flag,
 */
      __pyx_t_4 = ((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_4 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2351
 *             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 != '(':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2353
 *         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));
  if (__pyx_t_4) {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_calling_convention); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__29, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_3;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_8;
  } else {
    __pyx_t_2 = __pyx_t_4;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2354
 *                                        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_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_filename = __pyx_f[0]; __pyx_lineno = 2354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":2355
 *     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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_calling_convention); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_s_on_something_that_is_not_a_fu, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2354
 *                                        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 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2356
 *         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_6 = __pyx_v_s->sy;
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_4;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = (__pyx_t_8 != 0);
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":2357
 *             % result.calling_convention)
 *     while s.sy in ('[', '('):
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         if s.sy == '[':
 *             result = p_c_array_declarator(s, result)
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_pos, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":2358
 *     while s.sy in ('[', '('):
 *         pos = s.position()
 *         if s.sy == '[':             # <<<<<<<<<<<<<<
 *             result = p_c_array_declarator(s, result)
 *         else: # sy == '('
 */
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2359
 *         pos = s.position()
 *         if s.sy == '[':
 *             result = p_c_array_declarator(s, result)             # <<<<<<<<<<<<<<
 *         else: # sy == '('
 *             s.next()
 */
      __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_array_declarator(__pyx_v_s, __pyx_v_result); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2361
 *             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
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":2362
 *         else: # sy == '('
 *             s.next()
 *             result = p_c_func_declarator(s, pos, ctx, result, cmethod_flag)             # <<<<<<<<<<<<<<
 *         cmethod_flag = 0
 *     return result
 */
      __pyx_t_6 = __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_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6);
      __pyx_t_6 = 0;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":2363
 *             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":2364
 *             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":2331
 *     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_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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_c_declarator (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s,&__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__93;
    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)) != 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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __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":2366
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_array_declarator", 0);

  /* "Cython/Compiler/Parsing.py":2367
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2368
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2369
 *     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__40, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2370
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_dim = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2372
 *         dim = p_testlist(s)
 *     else:
 *         dim = None             # <<<<<<<<<<<<<<
 *     s.expect(']')
 *     return Nodes.CArrayDeclaratorNode(pos, base = base, dimension = dim)
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_dim = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2373
 *     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__40, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2374
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dimension, __pyx_v_dim) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __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":2366
 *     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":2376
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_func_declarator", 0);

  /* "Cython/Compiler/Parsing.py":2378
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __Pyx_INCREF(__pyx_v_ctx);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_ctx);
  __Pyx_GIVEREF(__pyx_v_ctx);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_cmethod_flag, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __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":2380
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_ellipsis = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2381
 *                         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__30, NULL); if (unlikely(__pyx_t_5 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2382
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_nogil = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2383
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __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":2384
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_with_gil = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2385
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":2386
 *     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)
 */
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_has_varargs, __pyx_v_ellipsis) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2387
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_exception_check, __pyx_v_exc_check) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2388
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_5) {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_nogil); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_5) {
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_INCREF(__pyx_v_with_gil);
      __pyx_t_7 = __pyx_v_with_gil;
    } else {
      __pyx_t_7 = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_t_1 = __pyx_t_7;
    __pyx_t_7 = 0;
  } else {
    __Pyx_INCREF(__pyx_v_nogil);
    __pyx_t_1 = __pyx_v_nogil;
  }
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nogil, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2385
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2385; __pyx_clineno = __LINE__; goto __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":2376
 *     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":2397
 * ]))
 * 
 * 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 *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_simple_declarator", 0);

  /* "Cython/Compiler/Parsing.py":2399
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2400
 *                           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_filename = __pyx_f[0]; __pyx_lineno = 2400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_calling_convention = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2401
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2402
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2403
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2404
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_const_pos = ((PyObject*)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2405
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2406
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_const_base = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2411
 *                                        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_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_const_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_const_pos);
      __Pyx_GIVEREF(__pyx_v_const_pos);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_base, __pyx_v_const_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2413
 *             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)
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_v_base = __pyx_t_6;
      __pyx_t_6 = 0;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":2416
 *                                   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_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":2417
 *                                   assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = base)             # <<<<<<<<<<<<<<
 *     elif s.sy == '**': # scanner returns this as a single token
 *         s.next()
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2416
 *                                   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_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2418
 *         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__34, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2419
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2420
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_base = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2423
 *                               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_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":2424
 *                               assignable = assignable, nonempty = nonempty)
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = Nodes.CPtrDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *                 base = base))
 *     elif s.sy == '&':
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CPtrDeclaratorNode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);

    /* "Cython/Compiler/Parsing.py":2425
 *         result = Nodes.CPtrDeclaratorNode(pos,
 *             base = Nodes.CPtrDeclaratorNode(pos,
 *                 base = base))             # <<<<<<<<<<<<<<
 *     elif s.sy == '&':
 *         s.next()
 */
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2424
 *                               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_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2423
 *                               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_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":2426
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2427
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 2427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2428
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_v_base = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2431
 *                               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_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base, __pyx_v_base) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2433
 *         result = Nodes.CReferenceDeclaratorNode(pos, base = base)
 *     else:
 *         rhs = None             # <<<<<<<<<<<<<<
 *         if s.sy == 'IDENT':
 *             name = EncodedString(s.systring)
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_rhs = Py_None;

    /* "Cython/Compiler/Parsing.py":2434
 *     else:
 *         rhs = None
 *         if s.sy == 'IDENT':             # <<<<<<<<<<<<<<
 *             name = EncodedString(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_filename = __pyx_f[0]; __pyx_lineno = 2434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2435
 *         rhs = None
 *         if s.sy == 'IDENT':
 *             name = EncodedString(s.systring)             # <<<<<<<<<<<<<<
 *             if empty:
 *                 error(s.position(), "Declarator should be empty")
 */
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_s->systring);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s->systring);
      __Pyx_GIVEREF(__pyx_v_s->systring);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_name = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2436
 *         if s.sy == 'IDENT':
 *             name = EncodedString(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":2437
 *             name = EncodedString(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_filename = __pyx_f[0]; __pyx_lineno = 2437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_kp_u_Declarator_should_be_empty);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Declarator_should_be_empty);
        __Pyx_GIVEREF(__pyx_kp_u_Declarator_should_be_empty);
        __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2437; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L6;
      }
      __pyx_L6:;

      /* "Cython/Compiler/Parsing.py":2438
 *             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_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_filename = __pyx_f[0]; __pyx_lineno = 2438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2439
 *                 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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_opt_cname(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_cname = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2440
 *             s.next()
 *             cname = p_opt_cname(s)
 *             if name != 'operator' and s.sy == '=' and assignable:             # <<<<<<<<<<<<<<
 *                 s.next()
 *                 rhs = p_test(s)
 */
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_operator, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_2) {
        __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_10) {
          __pyx_t_11 = __pyx_v_assignable;
          __pyx_t_12 = __pyx_t_11;
        } else {
          __pyx_t_12 = __pyx_t_10;
        }
        __pyx_t_10 = __pyx_t_12;
      } else {
        __pyx_t_10 = __pyx_t_2;
      }
      if (__pyx_t_10) {

        /* "Cython/Compiler/Parsing.py":2441
 *             cname = p_opt_cname(s)
 *             if name != 'operator' and s.sy == '=' and assignable:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 rhs = p_test(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_filename = __pyx_f[0]; __pyx_lineno = 2441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2442
 *             if name != 'operator' and s.sy == '=' and assignable:
 *                 s.next()
 *                 rhs = p_test(s)             # <<<<<<<<<<<<<<
 *         else:
 *             if nonempty:
 */
        __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF_SET(__pyx_v_rhs, __pyx_t_4);
        __pyx_t_4 = 0;
        goto __pyx_L7;
      }
      __pyx_L7:;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2444
 *                 rhs = p_test(s)
 *         else:
 *             if nonempty:             # <<<<<<<<<<<<<<
 *                 error(s.position(), "Empty declarator")
 *             name = ""
 */
      __pyx_t_10 = (__pyx_v_nonempty != 0);
      if (__pyx_t_10) {

        /* "Cython/Compiler/Parsing.py":2445
 *         else:
 *             if nonempty:
 *                 error(s.position(), "Empty declarator")             # <<<<<<<<<<<<<<
 *             name = ""
 *             cname = None
 */
        __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_filename = __pyx_f[0]; __pyx_lineno = 2445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_kp_u_Empty_declarator);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Empty_declarator);
        __Pyx_GIVEREF(__pyx_kp_u_Empty_declarator);
        __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2445; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L8;
      }
      __pyx_L8:;

      /* "Cython/Compiler/Parsing.py":2446
 *             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__48);
      __pyx_v_name = __pyx_kp_u__48;

      /* "Cython/Compiler/Parsing.py":2447
 *                 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":2448
 *             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_10 = (__pyx_v_cname == Py_None);
    if ((__pyx_t_10 != 0)) {
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = (__pyx_t_4 != Py_None);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if ((__pyx_t_2 != 0)) {
        __pyx_t_12 = (__pyx_v_nonempty != 0);
      } else {
        __pyx_t_12 = (__pyx_t_2 != 0);
      }
      __pyx_t_2 = __pyx_t_12;
    } else {
      __pyx_t_2 = (__pyx_t_10 != 0);
    }
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2449
 *             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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_kp_u__95); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_cname, __pyx_t_4);
      __pyx_t_4 = 0;
      goto __pyx_L9;
    }
    __pyx_L9:;

    /* "Cython/Compiler/Parsing.py":2450
 *         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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_operator, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_10) {
        __pyx_t_12 = __pyx_v_nonempty;
        __pyx_t_11 = __pyx_t_12;
      } else {
        __pyx_t_11 = __pyx_t_10;
      }
      __pyx_t_10 = __pyx_t_11;
    } else {
      __pyx_t_10 = __pyx_t_2;
    }
    if (__pyx_t_10) {

      /* "Cython/Compiler/Parsing.py":2451
 *             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_4 = __pyx_v_s->sy;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v_op = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2452
 *         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_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (PyList_CheckExact(__pyx_v_op) || PyTuple_CheckExact(__pyx_v_op)) {
          __pyx_t_1 = __pyx_v_op; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext;
        }
        for (;;) {
          if (!__pyx_t_14 && PyList_CheckExact(__pyx_t_1)) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_COMPILING_IN_CPYTHON
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            #endif
          } else if (!__pyx_t_14 && PyTuple_CheckExact(__pyx_t_1)) {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_COMPILING_IN_CPYTHON
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            #endif
          } else {
            __pyx_t_5 = __pyx_t_14(__pyx_t_1);
            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_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v_c, __pyx_t_5);
          __pyx_t_5 = 0;
          __pyx_t_10 = (__Pyx_PyUnicode_Contains(__pyx_8genexpr4__pyx_v_c, __pyx_kp_u__96, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
          __pyx_t_2 = (__pyx_t_10 != 0);
          if (__pyx_t_2) {
            if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_int_1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2452; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            goto __pyx_L17;
          }
          __pyx_L17:;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_c);
        goto __pyx_L18_exit_scope;
        __pyx_L14_error:;
        __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_c);
        goto __pyx_L1_error;
        __pyx_L18_exit_scope:;
      } /* exit inner scope */
      __pyx_t_2 = (__pyx_t_4 != Py_None) && (PyList_GET_SIZE(__pyx_t_4) != 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":2453
 *             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_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_filename = __pyx_f[0]; __pyx_lineno = 2453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "Cython/Compiler/Parsing.py":2455
 *                 s.next()
 *                 # Handle diphthong operators.
 *                 if op == '(':             # <<<<<<<<<<<<<<
 *                     s.expect(')')
 *                     op = '()'
 */
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":2456
 *                 # Handle diphthong operators.
 *                 if op == '(':
 *                     s.expect(')')             # <<<<<<<<<<<<<<
 *                     op = '()'
 *                 elif op == '[':
 */
          __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_filename = __pyx_f[0]; __pyx_lineno = 2456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

          /* "Cython/Compiler/Parsing.py":2457
 *                 if op == '(':
 *                     s.expect(')')
 *                     op = '()'             # <<<<<<<<<<<<<<
 *                 elif op == '[':
 *                     s.expect(']')
 */
          __Pyx_INCREF(__pyx_kp_u__97);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_kp_u__97);
          goto __pyx_L19;
        }

        /* "Cython/Compiler/Parsing.py":2458
 *                     s.expect(')')
 *                     op = '()'
 *                 elif op == '[':             # <<<<<<<<<<<<<<
 *                     s.expect(']')
 *                     op = '[]'
 */
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_2) {

          /* "Cython/Compiler/Parsing.py":2459
 *                     op = '()'
 *                 elif op == '[':
 *                     s.expect(']')             # <<<<<<<<<<<<<<
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 */
          __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_filename = __pyx_f[0]; __pyx_lineno = 2459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

          /* "Cython/Compiler/Parsing.py":2460
 *                 elif op == '[':
 *                     s.expect(']')
 *                     op = '[]'             # <<<<<<<<<<<<<<
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 *                     op *= 2       # ++, --, ...
 */
          __Pyx_INCREF(__pyx_kp_u__98);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_kp_u__98);
          goto __pyx_L19;
        }

        /* "Cython/Compiler/Parsing.py":2461
 *                     s.expect(']')
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:             # <<<<<<<<<<<<<<
 *                     op *= 2       # ++, --, ...
 *                     s.next()
 */
        __Pyx_INCREF(__pyx_v_op);
        __pyx_t_4 = __pyx_v_op;
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__19, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (!__pyx_t_2) {
          __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__18, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_11 = __pyx_t_10;
        } else {
          __pyx_t_11 = __pyx_t_2;
        }
        if (!__pyx_t_11) {
          __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__9, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_10 = __pyx_t_2;
        } else {
          __pyx_t_10 = __pyx_t_11;
        }
        if (!__pyx_t_10) {
          __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u__13, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_2 = __pyx_t_11;
        } else {
          __pyx_t_2 = __pyx_t_10;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_10 = __pyx_t_2;
        if (__pyx_t_10) {
          __pyx_t_4 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_v_op, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_11 = __pyx_t_2;
        } else {
          __pyx_t_11 = __pyx_t_10;
        }
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2462
 *                     op = '[]'
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 *                     op *= 2       # ++, --, ...             # <<<<<<<<<<<<<<
 *                     s.next()
 *                 elif s.sy == '=':
 */
          __pyx_t_4 = PyNumber_InPlaceMultiply(__pyx_v_op, __pyx_int_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_t_4);
          __pyx_t_4 = 0;

          /* "Cython/Compiler/Parsing.py":2463
 *                 elif op in ('-', '+', '|', '&') and s.sy == op:
 *                     op *= 2       # ++, --, ...
 *                     s.next()             # <<<<<<<<<<<<<<
 *                 elif s.sy == '=':
 *                     op += s.sy    # +=, -=, ...
 */
          __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_filename = __pyx_f[0]; __pyx_lineno = 2463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L19;
        }

        /* "Cython/Compiler/Parsing.py":2464
 *                     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__36, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_11) {

          /* "Cython/Compiler/Parsing.py":2465
 *                     s.next()
 *                 elif s.sy == '=':
 *                     op += s.sy    # +=, -=, ...             # <<<<<<<<<<<<<<
 *                     s.next()
 *                 if op not in supported_overloaded_operators:
 */
          __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_op, __pyx_v_s->sy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF_SET(__pyx_v_op, __pyx_t_4);
          __pyx_t_4 = 0;

          /* "Cython/Compiler/Parsing.py":2466
 *                 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_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_filename = __pyx_f[0]; __pyx_lineno = 2466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L19;
        }
        __pyx_L19:;

        /* "Cython/Compiler/Parsing.py":2467
 *                     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_Contains(__pyx_v_op, __pyx_v_6Cython_8Compiler_7Parsing_supported_overloaded_operators, Py_NE)); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_10 = (__pyx_t_11 != 0);
        if (__pyx_t_10) {

          /* "Cython/Compiler/Parsing.py":2468
 *                     s.next()
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,             # <<<<<<<<<<<<<<
 *                             fatal=False)
 *                 name += op
 */
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Overloading_operator_s_not_yet_s, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_1);
          __pyx_t_1 = 0;
          __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);

          /* "Cython/Compiler/Parsing.py":2469
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)             # <<<<<<<<<<<<<<
 *                 name += op
 *         result = Nodes.CNameDeclaratorNode(pos,
 */
          if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

          /* "Cython/Compiler/Parsing.py":2468
 *                     s.next()
 *                 if op not in supported_overloaded_operators:
 *                     s.error("Overloading operator '%s' not yet supported." % op,             # <<<<<<<<<<<<<<
 *                             fatal=False)
 *                 name += op
 */
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __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_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          goto __pyx_L20;
        }
        __pyx_L20:;

        /* "Cython/Compiler/Parsing.py":2470
 *                     s.error("Overloading operator '%s' not yet supported." % op,
 *                             fatal=False)
 *                 name += op             # <<<<<<<<<<<<<<
 *         result = Nodes.CNameDeclaratorNode(pos,
 *             name = name, cname = cname, default = rhs)
 */
        __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_name, __pyx_v_op); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_9);
        __pyx_t_9 = 0;
        goto __pyx_L11;
      }
      __pyx_L11:;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "Cython/Compiler/Parsing.py":2471
 *                             fatal=False)
 *                 name += op
 *         result = Nodes.CNameDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             name = name, cname = cname, default = rhs)
 *     result.calling_convention = calling_convention
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CNameDeclaratorNode); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "Cython/Compiler/Parsing.py":2472
 *                 name += op
 *         result = Nodes.CNameDeclaratorNode(pos,
 *             name = name, cname = cname, default = rhs)             # <<<<<<<<<<<<<<
 *     result.calling_convention = calling_convention
 *     return result
 */
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cname, __pyx_v_cname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_default, __pyx_v_rhs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2471
 *                             fatal=False)
 *                 name += op
 *         result = Nodes.CNameDeclaratorNode(pos,             # <<<<<<<<<<<<<<
 *             name = name, cname = cname, default = rhs)
 *     result.calling_convention = calling_convention
 */
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __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;
    __pyx_v_result = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2473
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2474
 *             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":2397
 * ]))
 * 
 * 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":2476
 *     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;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_nogil", 0);

  /* "Cython/Compiler/Parsing.py":2477
 * 
 * def p_nogil(s):
 *     if s.sy == 'IDENT' and s.systring == 'nogil':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return 1
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_nogil, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2478
 * def p_nogil(s):
 *     if s.sy == 'IDENT' and s.systring == 'nogil':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return 1
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2479
 *     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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2481
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_with_gil(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2476
 *     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_4);
  __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":2483
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_with_gil", 0);

  /* "Cython/Compiler/Parsing.py":2484
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2485
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2486
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2487
 *         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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2489
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_exception_value_clause(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2483
 *         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":2491
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_exception_value_clause", 0);

  /* "Cython/Compiler/Parsing.py":2492
 * 
 * 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":2493
 * 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":2494
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2495
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2496
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2497
 *         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":2498
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L4;
    }

    /* "Cython/Compiler/Parsing.py":2499
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":2500
 *             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":2501
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2502
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":2503
 *             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":2504
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2505
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 2505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF_SET(__pyx_v_exc_val, __pyx_t_2);
        __pyx_t_2 = 0;
        goto __pyx_L5;
      }
      __pyx_L5:;
      goto __pyx_L4;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2507
 *                 exc_val = p_name(s, name)
 *         else:
 *             if s.sy == '?':             # <<<<<<<<<<<<<<
 *                 exc_check = 1
 *                 s.next()
 */
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__27, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":2508
 *         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":2509
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L6;
      }
      __pyx_L6:;

      /* "Cython/Compiler/Parsing.py":2510
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 2510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_exc_val, __pyx_t_2);
      __pyx_t_2 = 0;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2511
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 2511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_exc_val);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_exc_val);
  __Pyx_GIVEREF(__pyx_v_exc_val);
  __Pyx_INCREF(__pyx_v_exc_check);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_exc_check);
  __Pyx_GIVEREF(__pyx_v_exc_check);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2491
 *         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":2515
 * 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__99;
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2519
 *     #  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_filename = __pyx_f[0]; __pyx_lineno = 2519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2520
 *     #  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_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_is_self_arg = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2521
 *     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_Contains(__pyx_v_s->sy, __pyx_v_6Cython_8Compiler_7Parsing_c_arg_list_terminators, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (!__pyx_t_3) break;

    /* "Cython/Compiler/Parsing.py":2522
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2522; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2524
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2522
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2525
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2526
 *             annotated = annotated))
 *         if s.sy != ',':
 *             break             # <<<<<<<<<<<<<<
 *         s.next()
 *         is_self_arg = 0
 */
      goto __pyx_L4_break;
    }

    /* "Cython/Compiler/Parsing.py":2527
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2528
 *             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":2529
 *         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":2515
 * 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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_c_arg_list (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s,&__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__99;
    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)) != 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_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2516; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2516; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2516; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __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":2531
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_optional_ellipsis", 0);

  /* "Cython/Compiler/Parsing.py":2532
 * 
 * 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__33, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2533
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2534
 *     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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2536
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0,
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2531
 *     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":2538
 *         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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2540
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2541
 *                  kw_only = 0, annotated = 1):
 *     pos = s.position()
 *     not_none = or_none = 0             # <<<<<<<<<<<<<<
 *     default = None
 *     annotation = None
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_not_none = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_or_none = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2542
 *     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":2543
 *     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":2544
 *     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":2546
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":2547
 *         # empty type declaration
 *         base_type = Nodes.CSimpleBaseTypeNode(pos,
 *             name = None, module_path = [],             # <<<<<<<<<<<<<<
 *             is_basic_c_type = 0, signed = 0,
 *             complex = 0, longness = 0,
 */
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_module_path, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_signed, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_complex, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_longness, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2550
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2550; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2546
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2552
 *             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:
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__; goto __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":2553
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __Pyx_INCREF(__pyx_v_ctx);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_ctx);
  __Pyx_GIVEREF(__pyx_v_ctx);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_nonempty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nonempty, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __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":2554
 *         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_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_not, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_or, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __pyx_t_7;
  } else {
    __pyx_t_8 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (__pyx_t_8 != 0);
  if (__pyx_t_2) {
    __pyx_t_8 = ((!(__pyx_v_s->in_python_file != 0)) != 0);
    __pyx_t_7 = __pyx_t_8;
  } else {
    __pyx_t_7 = __pyx_t_2;
  }
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":2555
 *     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":2556
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2557
 *         kind = s.sy
 *         s.next()
 *         if s.sy == 'IDENT' and s.systring == 'None':             # <<<<<<<<<<<<<<
 *             s.next()
 *         else:
 */
    __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_None, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_2;
    } else {
      __pyx_t_8 = __pyx_t_7;
    }
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2558
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2560
 *             s.next()
 *         else:
 *             s.error("Expected 'None'")             # <<<<<<<<<<<<<<
 *         if not in_pyfunc:
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__100, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2560; __pyx_clineno = __LINE__; goto __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_L5:;

    /* "Cython/Compiler/Parsing.py":2561
 *         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_8 = __Pyx_PyObject_IsTrue(__pyx_v_in_pyfunc); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = ((!__pyx_t_8) != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":2562
 *             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_3 = PyUnicode_Format(__pyx_kp_u_s_None_only_allowed_in_Python_f, __pyx_v_kind); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2563
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF_SET(__pyx_v_or_none, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2564
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF_SET(__pyx_v_not_none, __pyx_t_3);
    __pyx_t_3 = 0;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":2565
 *         or_none = kind == 'or'
 *         not_none = kind == 'not'
 *     if annotated and s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         annotation = p_test(s)
 */
  __pyx_t_7 = __pyx_v_annotated;
  if (__pyx_t_7) {
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = __pyx_t_8;
  } else {
    __pyx_t_2 = __pyx_t_7;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2566
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2567
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_annotation, __pyx_t_3);
    __pyx_t_3 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":2568
 *         s.next()
 *         annotation = p_test(s)
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         if 'pxd' in ctx.level:
 */
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2569
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2570
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_n_u_pxd, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = (__pyx_t_2 != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":2571
 *         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_7 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__6, Py_NE)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_7) {
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u__27, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_8 = __pyx_t_2;
      } else {
        __pyx_t_8 = __pyx_t_7;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_7 = (__pyx_t_8 != 0);
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":2572
 *         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_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_default_values_cannot_be_specifi);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_u_default_values_cannot_be_specifi);
        __Pyx_GIVEREF(__pyx_kp_u_default_values_cannot_be_specifi);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2572; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L10;
      }
      __pyx_L10:;

      /* "Cython/Compiler/Parsing.py":2573
 *             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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_BoolNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__101, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_default, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "Cython/Compiler/Parsing.py":2574
 *                 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_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_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L9;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2576
 *             s.next()
 *         else:
 *             default = p_test(s)             # <<<<<<<<<<<<<<
 *     return Nodes.CArgDeclNode(pos,
 *         base_type = base_type,
 */
      __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_default, __pyx_t_3);
      __pyx_t_3 = 0;
    }
    __pyx_L9:;
    goto __pyx_L8;
  }
  __pyx_L8:;

  /* "Cython/Compiler/Parsing.py":2577
 *         else:
 *             default = p_test(s)
 *     return Nodes.CArgDeclNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CArgDeclNode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);

  /* "Cython/Compiler/Parsing.py":2578
 *             default = p_test(s)
 *     return Nodes.CArgDeclNode(pos,
 *         base_type = base_type,             # <<<<<<<<<<<<<<
 *         declarator = declarator,
 *         not_none = not_none,
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2579
 *     return Nodes.CArgDeclNode(pos,
 *         base_type = base_type,
 *         declarator = declarator,             # <<<<<<<<<<<<<<
 *         not_none = not_none,
 *         or_none = or_none,
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2580
 *         base_type = base_type,
 *         declarator = declarator,
 *         not_none = not_none,             # <<<<<<<<<<<<<<
 *         or_none = or_none,
 *         default = default,
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_not_none, __pyx_v_not_none) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2581
 *         declarator = declarator,
 *         not_none = not_none,
 *         or_none = or_none,             # <<<<<<<<<<<<<<
 *         default = default,
 *         annotation = annotation,
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_or_none, __pyx_v_or_none) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2582
 *         not_none = not_none,
 *         or_none = or_none,
 *         default = default,             # <<<<<<<<<<<<<<
 *         annotation = annotation,
 *         kw_only = kw_only)
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_default, __pyx_v_default) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2583
 *         or_none = or_none,
 *         default = default,
 *         annotation = annotation,             # <<<<<<<<<<<<<<
 *         kw_only = kw_only)
 * 
 */
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_annotation, __pyx_v_annotation) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2584
 *         default = default,
 *         annotation = annotation,
 *         kw_only = kw_only)             # <<<<<<<<<<<<<<
 * 
 * def p_api(s):
 */
  __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_kw_only); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_kw_only, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2577
 *         else:
 *             default = p_test(s)
 *     return Nodes.CArgDeclNode(pos,             # <<<<<<<<<<<<<<
 *         base_type = base_type,
 *         declarator = declarator,
 */
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __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":2538
 *         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_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":2586
 *         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;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_api", 0);

  /* "Cython/Compiler/Parsing.py":2587
 * 
 * def p_api(s):
 *     if s.sy == 'IDENT' and s.systring == 'api':             # <<<<<<<<<<<<<<
 *         s.next()
 *         return 1
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_api, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2588
 * def p_api(s):
 *     if s.sy == 'IDENT' and s.systring == 'api':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return 1
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2589
 *     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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2591
 *         return 1
 *     else:
 *         return 0             # <<<<<<<<<<<<<<
 * 
 * def p_cdef_statement(s, ctx):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_0);
    __pyx_r = __pyx_int_0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2586
 *         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_4);
  __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":2593
 *         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;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cdef_statement", 0);

  /* "Cython/Compiler/Parsing.py":2594
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2595
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2596
 *     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_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_3) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_api(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __pyx_t_1;
    __pyx_t_1 = 0;
  } else {
    __pyx_t_4 = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_api, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2597
 *     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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2598
 *     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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_private, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_public, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __pyx_t_5;
    } else {
      __pyx_t_6 = __pyx_t_3;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = (__pyx_t_6 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":2599
 *     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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Cannot_combine_api_with_s, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2600
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2600; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_from, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __pyx_t_6;
  } else {
    __pyx_t_5 = __pyx_t_3;
  }
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2601
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2602
 *     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_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_import, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2603
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2604
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2605
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2606
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2607
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2608
 *         ctx.nogil = 1
 *         if ctx.overridable:
 *             error(pos, "cdef blocks cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *         return p_cdef_block(s, ctx)
 *     elif s.sy == ':':
 */
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u_cdef_blocks_cannot_be_declared_c);
      __Pyx_GIVEREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2608; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2609
 *         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_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_cdef_block(__pyx_v_s, __pyx_v_ctx); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2610
 *             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_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2611
 *         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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2612
 *     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_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_kp_u_cdef_blocks_cannot_be_declared_c);
      __Pyx_GIVEREF(__pyx_kp_u_cdef_blocks_cannot_be_declared_c);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2612; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "Cython/Compiler/Parsing.py":2613
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2614
 *             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_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_class_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2615
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = __pyx_t_3;
    } else {
      __pyx_t_6 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = (__pyx_t_6 != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2616
 *     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_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Extension_type_definition_not_al);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u_Extension_type_definition_not_al);
      __Pyx_GIVEREF(__pyx_kp_u_Extension_type_definition_not_al);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L8;
    }
    __pyx_L8:;

    /* "Cython/Compiler/Parsing.py":2617
 *         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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2618
 *             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_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Extension_types_cannot_be_declar);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_kp_u_Extension_types_cannot_be_declar);
      __Pyx_GIVEREF(__pyx_kp_u_Extension_types_cannot_be_declar);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2618; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L9;
    }
    __pyx_L9:;

    /* "Cython/Compiler/Parsing.py":2619
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2620
 *             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_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_cppclass, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_6;
  } else {
    __pyx_t_3 = __pyx_t_5;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2621
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2622
 *     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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {
    __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __pyx_t_5;
  } else {
    __pyx_t_6 = __pyx_t_3;
  }
  if (__pyx_t_6) {

    /* "Cython/Compiler/Parsing.py":2623
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_6) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_3;
    } else {
      __pyx_t_5 = __pyx_t_6;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = (__pyx_t_5 != 0);
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":2624
 *     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:
 *             error(pos, "C struct/union/enum cannot be declared cpdef")
 */
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_C_struct_union_enum_definition_n);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u_C_struct_union_enum_definition_n);
      __Pyx_GIVEREF(__pyx_kp_u_C_struct_union_enum_definition_n);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2624; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "Cython/Compiler/Parsing.py":2625
 *         if ctx.level not in ('module', 'module_pxd'):
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:             # <<<<<<<<<<<<<<
 *             error(pos, "C struct/union/enum cannot be declared cpdef")
 *         return p_struct_enum(s, pos, ctx)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_6) {

      /* "Cython/Compiler/Parsing.py":2626
 *             error(pos, "C struct/union/enum definition not allowed here")
 *         if ctx.overridable:
 *             error(pos, "C struct/union/enum cannot be declared cpdef")             # <<<<<<<<<<<<<<
 *         return p_struct_enum(s, pos, ctx)
 *     elif s.sy == 'IDENT' and s.systring == 'fused':
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_C_struct_union_enum_cannot_be_de);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_kp_u_C_struct_union_enum_cannot_be_de);
      __Pyx_GIVEREF(__pyx_kp_u_C_struct_union_enum_cannot_be_de);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2626; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L11;
    }
    __pyx_L11:;

    /* "Cython/Compiler/Parsing.py":2627
 *         if ctx.overridable:
 *             error(pos, "C struct/union/enum 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_filename = __pyx_f[0]; __pyx_lineno = 2627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2628
 *             error(pos, "C struct/union/enum 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_6 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_6) {
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_fused, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __pyx_t_5;
  } else {
    __pyx_t_3 = __pyx_t_6;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2629
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2631
 *         return p_fused_definition(s, pos, ctx)
 *     else:
 *         return p_c_func_or_var_declaration(s, pos, ctx)             # <<<<<<<<<<<<<<
 * 
 * def p_cdef_block(s, ctx):
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2593
 *         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_4);
  __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":2633
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cdef_block", 0);

  /* "Cython/Compiler/Parsing.py":2634
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cdef_flag, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2634; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2634; __pyx_clineno = __LINE__; goto __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":2633
 *         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":2636
 *     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;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_string_literal __pyx_t_4;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_suite __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cdef_extern_block", 0);
  __Pyx_INCREF(__pyx_v_ctx);

  /* "Cython/Compiler/Parsing.py":2637
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2638
 * 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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_cdef_extern_blocks_cannot_be_dec);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_cdef_extern_blocks_cannot_be_dec);
    __Pyx_GIVEREF(__pyx_kp_u_cdef_extern_blocks_cannot_be_dec);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2638; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2639
 *     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":2640
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2641
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2642
 *     s.expect('from')
 *     if s.sy == '*':
 *         s.next()             # <<<<<<<<<<<<<<
 *     else:
 *         include_file = p_string_literal(s, 'u')[2]
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2644
 *         s.next()
 *     else:
 *         include_file = p_string_literal(s, 'u')[2]             # <<<<<<<<<<<<<<
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')
 *     if s.systring == "namespace":
 */
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.kind_override = __pyx_n_u_u;
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_include_file, __pyx_t_1);
    __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":2645
 *     else:
 *         include_file = p_string_literal(s, 'u')[2]
 *     ctx = ctx(cdef_flag = 1, visibility = 'extern')             # <<<<<<<<<<<<<<
 *     if s.systring == "namespace":
 *         s.next()
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cdef_flag, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_visibility, __pyx_n_u_extern) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF_SET(__pyx_v_ctx, __pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2646
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2647
 *     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_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_filename = __pyx_f[0]; __pyx_lineno = 2647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2648
 *     if s.systring == "namespace":
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]             # <<<<<<<<<<<<<<
 *     if p_nogil(s):
 *         ctx.nogil = 1
 */
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.kind_override = __pyx_n_u_u;
    __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Parsing_p_string_literal(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2649
 *         s.next()
 *         ctx.namespace = p_string_literal(s, 'u')[2]
 *     if p_nogil(s):             # <<<<<<<<<<<<<<
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2650
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":2651
 *     if p_nogil(s):
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)             # <<<<<<<<<<<<<<
 *     return Nodes.CDefExternNode(pos,
 *         include_file = include_file,
 */
  __pyx_t_5.__pyx_n = 1;
  __pyx_t_5.ctx = __pyx_v_ctx;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_suite(__pyx_v_s, &__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_body = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2652
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,             # <<<<<<<<<<<<<<
 *         include_file = include_file,
 *         body = body,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CDefExternNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);

  /* "Cython/Compiler/Parsing.py":2653
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,
 *         include_file = include_file,             # <<<<<<<<<<<<<<
 *         body = body,
 *         namespace = ctx.namespace)
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_include_file, __pyx_v_include_file) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2654
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2655
 *         include_file = include_file,
 *         body = body,
 *         namespace = ctx.namespace)             # <<<<<<<<<<<<<<
 * 
 * def p_c_enum_definition(s, pos, ctx):
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_namespace, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":2652
 *         ctx.nogil = 1
 *     body = p_suite(s, ctx)
 *     return Nodes.CDefExternNode(pos,             # <<<<<<<<<<<<<<
 *         include_file = include_file,
 *         body = body,
 */
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __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_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2636
 *     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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":2657
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_enum_definition", 0);

  /* "Cython/Compiler/Parsing.py":2659
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2660
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2661
 *     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":2662
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2663
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_cname = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2664
 *         s.next()
 *         cname = p_opt_cname(s)
 *         if cname is None and ctx.namespace is not None:             # <<<<<<<<<<<<<<
 *             cname = ctx.namespace + "::" + name
 *     else:
 */
    __pyx_t_2 = (__pyx_v_cname == Py_None);
    if ((__pyx_t_2 != 0)) {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2664; __pyx_clineno = __LINE__; goto __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);
    } else {
      __pyx_t_4 = (__pyx_t_2 != 0);
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2665
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__95); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2667
 *             cname = ctx.namespace + "::" + name
 *     else:
 *         name = None             # <<<<<<<<<<<<<<
 *         cname = None
 *     items = None
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_name = Py_None;

    /* "Cython/Compiler/Parsing.py":2668
 *     else:
 *         name = None
 *         cname = None             # <<<<<<<<<<<<<<
 *     items = None
 *     s.expect(':')
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_cname = Py_None;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2669
 *         name = None
 *         cname = None
 *     items = None             # <<<<<<<<<<<<<<
 *     s.expect(':')
 *     items = []
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_items = Py_None;

  /* "Cython/Compiler/Parsing.py":2670
 *         cname = None
 *     items = None
 *     s.expect(':')             # <<<<<<<<<<<<<<
 *     items = []
 *     if s.sy != 'NEWLINE':
 */
  __pyx_t_4 = ((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_4 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2671
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2671; __pyx_clineno = __LINE__; goto __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":2672
 *     s.expect(':')
 *     items = []
 *     if s.sy != 'NEWLINE':             # <<<<<<<<<<<<<<
 *         p_c_enum_line(s, ctx, items)
 *     else:
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_NEWLINE, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2673
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2673; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L5;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2675
 *         p_c_enum_line(s, ctx, items)
 *     else:
 *         s.next() # 'NEWLINE'             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         while s.sy not in ('DEDENT', 'EOF'):
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2676
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2677
 *         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_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_4) {
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_3 = __pyx_t_2;
      } else {
        __pyx_t_3 = __pyx_t_4;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = (__pyx_t_3 != 0);
      if (!__pyx_t_4) break;

      /* "Cython/Compiler/Parsing.py":2678
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2678; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":2679
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2680
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":2681
 *         s.expect_dedent()
 *     return Nodes.CEnumDefNode(
 *         pos, name = name, cname = cname, items = items,             # <<<<<<<<<<<<<<
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2680
 *             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_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);

  /* "Cython/Compiler/Parsing.py":2681
 *         s.expect_dedent()
 *     return Nodes.CEnumDefNode(
 *         pos, name = name, cname = cname, items = items,             # <<<<<<<<<<<<<<
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         api = ctx.api, in_pxd = ctx.level == 'module_pxd')
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, __pyx_v_cname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_items, __pyx_v_items) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2682
 *     return Nodes.CEnumDefNode(
 *         pos, name = name, cname = cname, items = items,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_typedef_flag, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":2683
 *         pos, name = name, cname = cname, items = items,
 *         typedef_flag = ctx.typedef_flag, visibility = ctx.visibility,
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2683; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2683; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":2680
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __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":2657
 *         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":2685
 *         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;
  int __pyx_t_4;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_enum_line", 0);

  /* "Cython/Compiler/Parsing.py":2686
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2687
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2688
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_1) break;

      /* "Cython/Compiler/Parsing.py":2689
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":2690
 *         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_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_1) {
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_EOF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_4 = __pyx_t_3;
      } else {
        __pyx_t_4 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_1 = (__pyx_t_4 != 0);
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":2691
 *             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":2692
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L5_break:;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2694
 *             p_c_enum_item(s, ctx, items)
 *     else:
 *         s.next()             # <<<<<<<<<<<<<<
 *     s.expect_newline("Syntax error in enum item list")
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2695
 *     else:
 *         s.next()
 *     s.expect_newline("Syntax error in enum item list")             # <<<<<<<<<<<<<<
 * 
 * def p_c_enum_item(s, ctx, items):
 */
  __pyx_t_5.__pyx_n = 1;
  __pyx_t_5.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_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2685
 *         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":2697
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_enum_item", 0);

  /* "Cython/Compiler/Parsing.py":2698
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2699
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2700
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cname = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2701
 *     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_2 = (__pyx_v_cname == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2701; __pyx_clineno = __LINE__; goto __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);
  } else {
    __pyx_t_4 = (__pyx_t_2 != 0);
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2702
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__95); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2703
 *     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":2704
 *         cname = ctx.namespace + "::" + name
 *     value = None
 *     if s.sy == '=':             # <<<<<<<<<<<<<<
 *         s.next()
 *         value = p_test(s)
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__36, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2705
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2706
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":2707
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);

  /* "Cython/Compiler/Parsing.py":2708
 *         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):
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cname, __pyx_v_cname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2707
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":2697
 *     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":2710
 *         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;
  int __pyx_t_6;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_struct_or_union_definition", 0);

  /* "Cython/Compiler/Parsing.py":2711
 * 
 * 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":2712
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2713
 *     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":2714
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2715
 *         packed = True
 *         s.next()
 *         if s.sy != 'IDENT' or s.systring != 'struct':             # <<<<<<<<<<<<<<
 *             s.expected('struct')
 *     # s.sy == ident 'struct' or 'union'
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_1) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_struct, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_1;
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2716
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2718
 *             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":2719
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2720
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2721
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_cname = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2722
 *     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_4 = (__pyx_v_cname == Py_None);
  if ((__pyx_t_4 != 0)) {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = (__pyx_t_2 != Py_None);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = (__pyx_t_1 != 0);
  } else {
    __pyx_t_3 = (__pyx_t_4 != 0);
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2723
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_kp_u__95); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2724
 *     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":2725
 *         cname = ctx.namespace + "::" + name
 *     attributes = None
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('NEWLINE')
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2726
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2727
 *     if s.sy == ':':
 *         s.next()
 *         s.expect('NEWLINE')             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         attributes = []
 */
    __pyx_t_3 = ((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_3 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2728
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2729
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__; goto __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":2730
 *         s.expect_indent()
 *         attributes = []
 *         body_ctx = Ctx()             # <<<<<<<<<<<<<<
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':
 */
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_body_ctx = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2731
 *         attributes = []
 *         body_ctx = Ctx()
 *         while s.sy != 'DEDENT':             # <<<<<<<<<<<<<<
 *             if s.sy != 'pass':
 *                 attributes.append(
 */
    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_filename = __pyx_f[0]; __pyx_lineno = 2731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_3) break;

      /* "Cython/Compiler/Parsing.py":2732
 *         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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {

        /* "Cython/Compiler/Parsing.py":2734
 *             if s.sy != 'pass':
 *                 attributes.append(
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))             # <<<<<<<<<<<<<<
 *             else:
 *                 s.next()
 */
        __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_filename = __pyx_f[0]; __pyx_lineno = 2734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(__pyx_v_s, __pyx_t_5, __pyx_v_body_ctx); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":2733
 *         while s.sy != 'DEDENT':
 *             if s.sy != 'pass':
 *                 attributes.append(             # <<<<<<<<<<<<<<
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 *             else:
 */
        __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_attributes, __pyx_t_2); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L9;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":2736
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 *             else:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()
 */
        __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_filename = __pyx_f[0]; __pyx_lineno = 2736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "Cython/Compiler/Parsing.py":2737
 *             else:
 *                 s.next()
 *                 s.expect_newline("Expected a newline")             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *     else:
 */
        __pyx_t_7.__pyx_n = 1;
        __pyx_t_7.message = __pyx_kp_u_Expected_a_newline;
        __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_L9:;
    }

    /* "Cython/Compiler/Parsing.py":2738
 *                 s.next()
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *     else:
 *         s.expect_newline("Syntax error in struct or union definition")
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2740
 *         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,
 */
    __pyx_t_7.__pyx_n = 1;
    __pyx_t_7.message = __pyx_kp_u_Syntax_error_in_struct_or_union;
    __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_7); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":2741
 *     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_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CStructOrUnionDefNode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);

  /* "Cython/Compiler/Parsing.py":2742
 *         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)
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_cname, __pyx_v_cname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_kind, __pyx_v_kind) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_attributes, __pyx_v_attributes) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2743
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_typedef_flag, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_visibility, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":2744
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_api, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2744; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_in_pxd, __pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_packed, __pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":2741
 *     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_2, __pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2710
 *         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_8);
  __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":2746
 *         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;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_fused_definition", 0);

  /* "Cython/Compiler/Parsing.py":2753
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (__pyx_t_4 != 0);
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2754
 * 
 *     if ctx.level not in ('module', 'module_pxd'):
 *         error(pos, "Fused type definition not allowed here")             # <<<<<<<<<<<<<<
 * 
 *     s.next()
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Fused_type_definition_not_allowe);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Fused_type_definition_not_allowe);
    __Pyx_GIVEREF(__pyx_kp_u_Fused_type_definition_not_allowe);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2756
 *         error(pos, "Fused type definition not allowed here")
 * 
 *     s.next()             # <<<<<<<<<<<<<<
 *     name = p_ident(s)
 * 
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2757
 * 
 *     s.next()
 *     name = p_ident(s)             # <<<<<<<<<<<<<<
 * 
 *     s.expect(":")
 */
  __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_name = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2759
 *     name = p_ident(s)
 * 
 *     s.expect(":")             # <<<<<<<<<<<<<<
 *     s.expect_newline()
 *     s.expect_indent()
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2760
 * 
 *     s.expect(":")
 *     s.expect_newline()             # <<<<<<<<<<<<<<
 *     s.expect_indent()
 * 
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2761
 *     s.expect(":")
 *     s.expect_newline()
 *     s.expect_indent()             # <<<<<<<<<<<<<<
 * 
 *     types = []
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2763
 *     s.expect_indent()
 * 
 *     types = []             # <<<<<<<<<<<<<<
 *     while s.sy != 'DEDENT':
 *         if s.sy != 'pass':
 */
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_types = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2764
 * 
 *     types = []
 *     while s.sy != 'DEDENT':             # <<<<<<<<<<<<<<
 *         if s.sy != 'pass':
 *             #types.append(p_c_declarator(s))
 */
  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_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":2765
 *     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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2767
 *         if s.sy != 'pass':
 *             #types.append(p_c_declarator(s))
 *             types.append(p_c_base_type(s)) #, nonempty=1))             # <<<<<<<<<<<<<<
 *         else:
 *             s.next()
 */
      __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_base_type(__pyx_v_s, 0, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_types, __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L6;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2769
 *             types.append(p_c_base_type(s)) #, nonempty=1))
 *         else:
 *             s.next()             # <<<<<<<<<<<<<<
 * 
 *         s.expect_newline()
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2771
 *             s.next()
 * 
 *         s.expect_newline()             # <<<<<<<<<<<<<<
 * 
 *     s.expect_dedent()
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }

  /* "Cython/Compiler/Parsing.py":2773
 *         s.expect_newline()
 * 
 *     s.expect_dedent()             # <<<<<<<<<<<<<<
 * 
 *     if not types:
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2775
 *     s.expect_dedent()
 * 
 *     if not types:             # <<<<<<<<<<<<<<
 *         error(pos, "Need at least one type")
 * 
 */
  __pyx_t_2 = (__pyx_v_types != Py_None) && (PyList_GET_SIZE(__pyx_v_types) != 0);
  __pyx_t_4 = ((!__pyx_t_2) != 0);
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2776
 * 
 *     if not types:
 *         error(pos, "Need at least one type")             # <<<<<<<<<<<<<<
 * 
 *     return Nodes.FusedTypeNode(pos, name=name, types=types)
 */
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Need_at_least_one_type);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_kp_u_Need_at_least_one_type);
    __Pyx_GIVEREF(__pyx_kp_u_Need_at_least_one_type);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":2778
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_types, __pyx_v_types) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2746
 *         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_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":2780
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_struct_enum", 0);

  /* "Cython/Compiler/Parsing.py":2781
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":2782
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2784
 *         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):
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2780
 *     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":2786
 *         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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_visibility", 0);

  /* "Cython/Compiler/Parsing.py":2787
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2788
 * 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":2789
 *     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_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_v_s->systring);
    __pyx_t_1 = __pyx_v_s->systring;
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_3) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_public, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_4;
    } else {
      __pyx_t_5 = __pyx_t_3;
    }
    if (!__pyx_t_5) {
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_readonly, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_4;
    __pyx_t_4 = __pyx_t_5;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2790
 *     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":2791
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {
      __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_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = __pyx_t_2;
    } else {
      __pyx_t_5 = __pyx_t_4;
    }
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2792
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);

      /* "Cython/Compiler/Parsing.py":2793
 *         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 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_prev_visibility);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_prev_visibility);
      __Pyx_GIVEREF(__pyx_v_prev_visibility);
      __Pyx_INCREF(__pyx_v_visibility);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_visibility);
      __Pyx_GIVEREF(__pyx_v_visibility);
      __pyx_t_7 = PyUnicode_Format(__pyx_kp_u_Conflicting_visibility_options_s, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":2792
 *         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_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);

      /* "Cython/Compiler/Parsing.py":2793
 *         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
 */
      if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":2792
 *         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_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __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;
      goto __pyx_L4;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":2794
 *             s.error("Conflicting visibility options '%s' and '%s'"
 *                 % (prev_visibility, visibility), fatal=False)
 *         s.next()             # <<<<<<<<<<<<<<
 *     return visibility
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2795
 *                 % (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":2786
 *         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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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":2797
 *     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;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_modifiers", 0);

  /* "Cython/Compiler/Parsing.py":2798
 * 
 * def p_c_modifiers(s):
 *     if s.sy == 'IDENT' and s.systring in ('inline',):             # <<<<<<<<<<<<<<
 *         modifier = 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_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __Pyx_INCREF(__pyx_v_s->systring);
    __pyx_t_2 = __pyx_v_s->systring;
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_inline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __pyx_t_3;
    __pyx_t_3 = __pyx_t_4;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2799
 * 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_2 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_modifier = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2800
 *     if s.sy == 'IDENT' and s.systring in ('inline',):
 *         modifier = s.systring
 *         s.next()             # <<<<<<<<<<<<<<
 *         return [modifier] + p_c_modifiers(s)
 *     return []
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":2801
 *         modifier = s.systring
 *         s.next()
 *         return [modifier] + p_c_modifiers(s)             # <<<<<<<<<<<<<<
 *     return []
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_modifier);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_v_modifier);
    __Pyx_GIVEREF(__pyx_v_modifier);
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_modifiers(__pyx_v_s); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyNumber_Add(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 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":2802
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2797
 *     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_2);
  __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":2804
 *     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;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_func_or_var_declaration", 0);

  /* "Cython/Compiler/Parsing.py":2805
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cmethod_flag = __pyx_t_4;

  /* "Cython/Compiler/Parsing.py":2806
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_modifiers = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2807
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_nonempty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_templates); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_templates, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __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_base_type = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "Cython/Compiler/Parsing.py":2808
 *     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_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __Pyx_INCREF(__pyx_v_ctx);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ctx);
  __Pyx_GIVEREF(__pyx_v_ctx);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cmethod_flag, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_assignable, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_nonempty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __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_v_declarator = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2810
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_declarator, __pyx_n_s_overridable, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2811
 *                                 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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_const, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = __pyx_t_3;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_8;
  } else {
    __pyx_t_2 = __pyx_t_4;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2812
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2813
 *     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;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2815
 *         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:
 */
    __pyx_v_is_const_method = 0;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2816
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2817
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_4;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    if (__pyx_t_8) {
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_module_pxd, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_4 = __pyx_t_8;
    }
    if (__pyx_t_4) {
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class_pxd, Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_8;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_cpp_class, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __pyx_t_4;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = (__pyx_t_8 != 0);
    if (__pyx_t_2) {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_templates); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = ((!__pyx_t_8) != 0);
      __pyx_t_8 = __pyx_t_4;
    } else {
      __pyx_t_8 = __pyx_t_2;
    }
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2818
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__102, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2818; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":2819
 *         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_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_n_u_function) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (likely(__pyx_t_1 != Py_None)) {
      PyObject* sequence = __pyx_t_1;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_5);
      #else
      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;
    __pyx_v_suite = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":2820
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "Cython/Compiler/Parsing.py":2821
 *         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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2822
 *         result = Nodes.CFuncDefNode(pos,
 *             visibility = ctx.visibility,
 *             base_type = base_type,             # <<<<<<<<<<<<<<
 *             declarator = declarator,
 *             body = suite,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2823
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 *             declarator = declarator,             # <<<<<<<<<<<<<<
 *             body = suite,
 *             doc = doc,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_declarator, __pyx_v_declarator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2824
 *             base_type = base_type,
 *             declarator = declarator,
 *             body = suite,             # <<<<<<<<<<<<<<
 *             doc = doc,
 *             modifiers = modifiers,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_suite) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2825
 *             declarator = declarator,
 *             body = suite,
 *             doc = doc,             # <<<<<<<<<<<<<<
 *             modifiers = modifiers,
 *             api = ctx.api,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2826
 *             body = suite,
 *             doc = doc,
 *             modifiers = modifiers,             # <<<<<<<<<<<<<<
 *             api = ctx.api,
 *             overridable = ctx.overridable,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_modifiers, __pyx_v_modifiers) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2827
 *             doc = doc,
 *             modifiers = modifiers,
 *             api = ctx.api,             # <<<<<<<<<<<<<<
 *             overridable = ctx.overridable,
 *             is_const_method = is_const_method)
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2828
 *             modifiers = modifiers,
 *             api = ctx.api,
 *             overridable = ctx.overridable,             # <<<<<<<<<<<<<<
 *             is_const_method = is_const_method)
 *     else:
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_overridable, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2829
 *             api = ctx.api,
 *             overridable = ctx.overridable,
 *             is_const_method = is_const_method)             # <<<<<<<<<<<<<<
 *     else:
 *         #if api:
 */
    __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_is_const_method); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_is_const_method, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2820
 *             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_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __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_result = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L4;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2833
 *         #if api:
 *         #    s.error("'api' not allowed with variable declaration")
 *         if is_const_method:             # <<<<<<<<<<<<<<
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]
 */
    __pyx_t_8 = (__pyx_v_is_const_method != 0);
    if (__pyx_t_8) {

      /* "Cython/Compiler/Parsing.py":2834
 *         #    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_7 = __Pyx_PyInt_From_long(__pyx_v_is_const_method); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_declarator, __pyx_n_s_is_const_method, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":2835
 *         if is_const_method:
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_declarator);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_v_declarator);
    __Pyx_GIVEREF(__pyx_v_declarator);
    __pyx_v_declarators = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2836
 *             declarator.is_const_method = is_const_method
 *         declarators = [declarator]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             if s.sy == 'NEWLINE':
 */
    while (1) {
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_8) break;

      /* "Cython/Compiler/Parsing.py":2837
 *         declarators = [declarator]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             if s.sy == 'NEWLINE':
 *                 break
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 2837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2838
 *         while s.sy == ',':
 *             s.next()
 *             if s.sy == 'NEWLINE':             # <<<<<<<<<<<<<<
 *                 break
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 */
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_NEWLINE, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_8) {

        /* "Cython/Compiler/Parsing.py":2839
 *             s.next()
 *             if s.sy == 'NEWLINE':
 *                 break             # <<<<<<<<<<<<<<
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,
 *                                         assignable = 1, nonempty = 1)
 */
        goto __pyx_L8_break;
      }

      /* "Cython/Compiler/Parsing.py":2840
 *             if s.sy == 'NEWLINE':
 *                 break
 *             declarator = p_c_declarator(s, ctx, cmethod_flag = cmethod_flag,             # <<<<<<<<<<<<<<
 *                                         assignable = 1, nonempty = 1)
 *             declarators.append(declarator)
 */
      __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      __Pyx_INCREF(__pyx_v_ctx);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ctx);
      __Pyx_GIVEREF(__pyx_v_ctx);
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_cmethod_flag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cmethod_flag, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_assignable, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_nonempty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __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_DECREF_SET(__pyx_v_declarator, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":2842
 *             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")
 */
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_declarators, __pyx_v_declarator); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L8_break:;

    /* "Cython/Compiler/Parsing.py":2843
 *                                         assignable = 1, nonempty = 1)
 *             declarators.append(declarator)
 *         doc_line = s.start_line + 1             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in C variable declaration")
 *         if ctx.level == 'c_class' and s.start_line == doc_line:
 */
    __pyx_v_doc_line = (__pyx_v_s->__pyx_base.start_line + 1);

    /* "Cython/Compiler/Parsing.py":2844
 *             declarators.append(declarator)
 *         doc_line = s.start_line + 1
 *         s.expect_newline("Syntax error in C variable declaration")             # <<<<<<<<<<<<<<
 *         if ctx.level == 'c_class' and s.start_line == doc_line:
 *             doc = p_doc_string(s)
 */
    __pyx_t_10.__pyx_n = 1;
    __pyx_t_10.message = __pyx_kp_u_Syntax_error_in_C_variable_decla;
    __pyx_t_1 = ((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_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2845
 *         doc_line = s.start_line + 1
 *         s.expect_newline("Syntax error in C variable declaration")
 *         if ctx.level == 'c_class' 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_filename = __pyx_f[0]; __pyx_lineno = 2845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_c_class, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {
      __pyx_t_2 = (__pyx_v_s->__pyx_base.start_line == __pyx_v_doc_line);
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_4 = __pyx_t_8;
    }
    if (__pyx_t_4) {

      /* "Cython/Compiler/Parsing.py":2846
 *         s.expect_newline("Syntax error in C variable declaration")
 *         if ctx.level == 'c_class' 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_filename = __pyx_f[0]; __pyx_lineno = 2846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_doc = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L10;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":2848
 *             doc = p_doc_string(s)
 *         else:
 *             doc = None             # <<<<<<<<<<<<<<
 *         result = Nodes.CVarDefNode(pos,
 *             visibility = ctx.visibility,
 */
      __Pyx_INCREF(Py_None);
      __pyx_v_doc = Py_None;
    }
    __pyx_L10:;

    /* "Cython/Compiler/Parsing.py":2849
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "Cython/Compiler/Parsing.py":2850
 *             doc = None
 *         result = Nodes.CVarDefNode(pos,
 *             visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *             base_type = base_type,
 *             declarators = declarators,
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_visibility, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2851
 *         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_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2852
 *             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_6, __pyx_n_s_declarators, __pyx_v_declarators) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2853
 *             base_type = base_type,
 *             declarators = declarators,
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),             # <<<<<<<<<<<<<<
 *             doc = doc,
 *             api = ctx.api,
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_module_pxd, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_4) {
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_c_class_pxd, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = __pyx_t_8;
    } else {
      __pyx_t_2 = __pyx_t_4;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in_pxd, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2854
 *             declarators = declarators,
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),
 *             doc = doc,             # <<<<<<<<<<<<<<
 *             api = ctx.api,
 *             modifiers = modifiers,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2855
 *             in_pxd = ctx.level in ('module_pxd', 'c_class_pxd'),
 *             doc = doc,
 *             api = ctx.api,             # <<<<<<<<<<<<<<
 *             modifiers = modifiers,
 *             overridable = ctx.overridable)
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2856
 *             doc = doc,
 *             api = ctx.api,
 *             modifiers = modifiers,             # <<<<<<<<<<<<<<
 *             overridable = ctx.overridable)
 *     return result
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_modifiers, __pyx_v_modifiers) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2857
 *             api = ctx.api,
 *             modifiers = modifiers,
 *             overridable = ctx.overridable)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_overridable); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_overridable, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2849
 *         else:
 *             doc = None
 *         result = Nodes.CVarDefNode(pos,             # <<<<<<<<<<<<<<
 *             visibility = ctx.visibility,
 *             base_type = base_type,
 */
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __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_result = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":2858
 *             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":2804
 *     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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":2860
 *     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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_ctypedef_statement", 0);
  __Pyx_INCREF(__pyx_v_ctx);

  /* "Cython/Compiler/Parsing.py":2862
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2863
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2864
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__; goto __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":2865
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_api = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2866
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_typedef_flag, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_visibility, __pyx_v_visibility) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__; goto __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":2867
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2868
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2869
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2870
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2871
 *     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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {
    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_s->systring, __pyx_v_6Cython_8Compiler_7Parsing_struct_enum_union, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_3;
  }
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2872
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":2873
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_fused, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2874
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2876
 *         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")
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_nonempty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __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":2877
 *     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")
 *         return Nodes.CTypeDefNode(
 */
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    __Pyx_INCREF(__pyx_v_ctx);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ctx);
    __Pyx_GIVEREF(__pyx_v_ctx);
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_is_type, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nonempty, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __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":2878
 *         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")             # <<<<<<<<<<<<<<
 *         return Nodes.CTypeDefNode(
 *             pos, base_type = base_type,
 */
    __pyx_t_8.__pyx_n = 1;
    __pyx_t_8.message = __pyx_kp_u_Syntax_error_in_ctypedef_stateme;
    __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_filename = __pyx_f[0]; __pyx_lineno = 2878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2879
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement")
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":2880
 *         s.expect_newline("Syntax error in ctypedef statement")
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);

    /* "Cython/Compiler/Parsing.py":2879
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement")
 *         return Nodes.CTypeDefNode(             # <<<<<<<<<<<<<<
 *             pos, base_type = base_type,
 *             declarator = declarator,
 */
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "Cython/Compiler/Parsing.py":2880
 *         s.expect_newline("Syntax error in ctypedef statement")
 *         return Nodes.CTypeDefNode(
 *             pos, base_type = base_type,             # <<<<<<<<<<<<<<
 *             declarator = declarator,
 *             visibility = visibility, api = api,
 */
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_base_type, __pyx_v_base_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2881
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2882
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_api, __pyx_v_api) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2883
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "Cython/Compiler/Parsing.py":2879
 *         declarator = p_c_declarator(s, ctx, is_type = 1, nonempty = 1)
 *         s.expect_newline("Syntax error in ctypedef statement")
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __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":2860
 *     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":2885
 *             in_pxd = ctx.level == 'module_pxd')
 * 
 * def p_decorators(s):             # <<<<<<<<<<<<<<
 *     decorators = []
 *     while s.sy == 'DECORATOR':
 */

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;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_decorators", 0);

  /* "Cython/Compiler/Parsing.py":2886
 * 
 * def p_decorators(s):
 *     decorators = []             # <<<<<<<<<<<<<<
 *     while s.sy == 'DECORATOR':
 *         pos = s.position()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_decorators = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2887
 * def p_decorators(s):
 *     decorators = []
 *     while s.sy == 'DECORATOR':             # <<<<<<<<<<<<<<
 *         pos = s.position()
 *         s.next()
 */
  while (1) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DECORATOR, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":2888
 *     decorators = []
 *     while s.sy == 'DECORATOR':
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __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":2889
 *     while s.sy == 'DECORATOR':
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2890
 *         pos = s.position()
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]             # <<<<<<<<<<<<<<
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_dotted_name(__pyx_v_s, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2890; __pyx_clineno = __LINE__; goto __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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2890; __pyx_clineno = __LINE__; goto __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":2891
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')             # <<<<<<<<<<<<<<
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(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_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__103, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __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":2892
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))             # <<<<<<<<<<<<<<
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(pos,
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_names, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __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":2893
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))
 *         for name in names[1:]:             # <<<<<<<<<<<<<<
 *             decorator = ExprNodes.AttributeNode(pos,
 *                                            attribute=EncodedString(name),
 */
    __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_names, 1, 0, NULL, NULL, &__pyx_slice__104, 1, 0, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        #endif
      } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        #endif
      } else {
        __pyx_t_5 = __pyx_t_8(__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_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __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":2894
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(pos,             # <<<<<<<<<<<<<<
 *                                            attribute=EncodedString(name),
 *                                            obj=decorator)
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_n_s_AttributeNode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);

      /* "Cython/Compiler/Parsing.py":2895
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(pos,
 *                                            attribute=EncodedString(name),             # <<<<<<<<<<<<<<
 *                                            obj=decorator)
 *         if s.sy == '(':
 */
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attribute, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "Cython/Compiler/Parsing.py":2896
 *             decorator = ExprNodes.AttributeNode(pos,
 *                                            attribute=EncodedString(name),
 *                                            obj=decorator)             # <<<<<<<<<<<<<<
 *         if s.sy == '(':
 *             decorator = p_call(s, decorator)
 */
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_obj, __pyx_v_decorator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":2894
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))
 *         for name in names[1:]:
 *             decorator = ExprNodes.AttributeNode(pos,             # <<<<<<<<<<<<<<
 *                                            attribute=EncodedString(name),
 *                                            obj=decorator)
 */
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __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_9);
      __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2897
 *                                            attribute=EncodedString(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__29, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":2898
 *                                            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_filename = __pyx_f[0]; __pyx_lineno = 2898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_decorator, __pyx_t_4);
      __pyx_t_4 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "Cython/Compiler/Parsing.py":2899
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_decorator, __pyx_v_decorator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __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_1); __pyx_t_1 = 0;
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_decorators, __pyx_t_3); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":2900
 *             decorator = p_call(s, decorator)
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 *         s.expect_newline("Expected a newline after decorator")             # <<<<<<<<<<<<<<
 *     return decorators
 * 
 */
    __pyx_t_11.__pyx_n = 1;
    __pyx_t_11.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_11); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }

  /* "Cython/Compiler/Parsing.py":2901
 *         decorators.append(Nodes.DecoratorNode(pos, decorator=decorator))
 *         s.expect_newline("Expected a newline after decorator")
 *     return decorators             # <<<<<<<<<<<<<<
 * 
 * def p_def_statement(s, decorators=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_decorators);
  __pyx_r = __pyx_v_decorators;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2885
 *             in_pxd = ctx.level == 'module_pxd')
 * 
 * def p_decorators(s):             # <<<<<<<<<<<<<<
 *     decorators = []
 *     while s.sy == 'DECORATOR':
 */

  /* 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_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":2903
 *     return decorators
 * 
 * def p_def_statement(s, decorators=None):             # <<<<<<<<<<<<<<
 *     # 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);
  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;
  PyObject *__pyx_t_2 = NULL;
  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)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_def_statement", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_decorators = __pyx_optional_args->decorators;
    }
  }

  /* "Cython/Compiler/Parsing.py":2905
 * def p_def_statement(s, decorators=None):
 *     # s.sy == 'def'
 *     pos = s.position()             # <<<<<<<<<<<<<<
 *     s.next()
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2906
 *     # s.sy == 'def'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 2906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2907
 *     pos = s.position()
 *     s.next()
 *     name = EncodedString( 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_filename = __pyx_f[0]; __pyx_lineno = 2907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2908
 *     s.next()
 *     name = EncodedString( p_ident(s) )
 *     s.expect('(')             # <<<<<<<<<<<<<<
 *     args, star_arg, starstar_arg = p_varargslist(s, terminator=')')
 *     s.expect(')')
 */
  __pyx_t_3 = ((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_3 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2909
 *     name = EncodedString( 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__30;
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_varargslist(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_2 = 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_2);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __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_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L3_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_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_args = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_star_arg = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_starstar_arg = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":2910
 *     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_3 = ((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_3 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2911
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2912
 *     s.expect(')')
 *     if p_nogil(s):
 *         error(pos, "Python function cannot be declared nogil")             # <<<<<<<<<<<<<<
 *     return_type_annotation = None
 *     if s.sy == '->':
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Python_function_cannot_be_declar);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Python_function_cannot_be_declar);
    __Pyx_GIVEREF(__pyx_kp_u_Python_function_cannot_be_declar);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2913
 *     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":2914
 *         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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__105, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2915
 *     return_type_annotation = None
 *     if s.sy == '->':
 *         s.next()             # <<<<<<<<<<<<<<
 *         return_type_annotation = p_test(s)
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":2916
 *     if s.sy == '->':
 *         s.next()
 *         return_type_annotation = p_test(s)             # <<<<<<<<<<<<<<
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     return Nodes.DefNode(pos, name = name, args = args,
 */
    __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_test(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_return_type_annotation, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":2917
 *         s.next()
 *         return_type_annotation = p_test(s)
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))             # <<<<<<<<<<<<<<
 *     return Nodes.DefNode(pos, name = name, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 */
  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_n_u_function) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    #else
    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_v_doc = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_body = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":2918
 *         return_type_annotation = p_test(s)
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     return Nodes.DefNode(pos, name = name, args = args,             # <<<<<<<<<<<<<<
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 *         doc = doc, body = body, decorators = decorators,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_DefNode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2919
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     return Nodes.DefNode(pos, name = name, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,             # <<<<<<<<<<<<<<
 *         doc = doc, body = body, decorators = decorators,
 *         return_type_annotation = return_type_annotation)
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_star_arg, __pyx_v_star_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_starstar_arg, __pyx_v_starstar_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2920
 *     return Nodes.DefNode(pos, name = name, args = args,
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 *         doc = doc, body = body, decorators = decorators,             # <<<<<<<<<<<<<<
 *         return_type_annotation = return_type_annotation)
 * 
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_decorators, __pyx_v_decorators) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2921
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 *         doc = doc, body = body, decorators = decorators,
 *         return_type_annotation = return_type_annotation)             # <<<<<<<<<<<<<<
 * 
 * def p_varargslist(s, terminator=')', annotated=1):
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_return_type_annotation, __pyx_v_return_type_annotation) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2918
 *         return_type_annotation = p_test(s)
 *     doc, body = p_suite_with_docstring(s, Ctx(level='function'))
 *     return Nodes.DefNode(pos, name = name, args = args,             # <<<<<<<<<<<<<<
 *         star_arg = star_arg, starstar_arg = starstar_arg,
 *         doc = doc, body = body, decorators = decorators,
 */
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __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_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2903
 *     return decorators
 * 
 * def p_def_statement(s, decorators=None):             # <<<<<<<<<<<<<<
 *     # s.sy == 'def'
 *     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_XDECREF(__pyx_t_7);
  __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":2923
 *         return_type_annotation = return_type_annotation)
 * 
 * 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__30);
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2924
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_s));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_in_pyfunc, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nonempty_declarators, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2925
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_annotated, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":2924
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __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":2926
 *     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":2927
 *                         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":2928
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2929
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":2930
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2931
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_star_arg, __pyx_t_4);
      __pyx_t_4 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":2932
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2933
 *             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_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":2934
 *         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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_args, __pyx_n_s_extend); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_in_pyfunc, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nonempty_declarators, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_kw_only, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "Cython/Compiler/Parsing.py":2935
 *             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_7 = __Pyx_PyBool_FromLong(__pyx_v_annotated); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_annotated, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":2934
 *         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_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __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;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L5;
    }

    /* "Cython/Compiler/Parsing.py":2936
 *             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_7 = PyObject_RichCompare(__pyx_v_s->sy, __pyx_v_terminator, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":2937
 *                 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_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__106, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L5;
    }
    __pyx_L5:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2938
 *         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__34, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2939
 *             s.error("Syntax error in Python function argument list")
 *     if s.sy == '**':
 *         s.next()             # <<<<<<<<<<<<<<
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 *     return (args, star_arg, starstar_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_filename = __pyx_f[0]; __pyx_lineno = 2939; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2940
 *     if s.sy == '**':
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)             # <<<<<<<<<<<<<<
 *     return (args, star_arg, starstar_arg)
 * 
 */
    __pyx_t_6.__pyx_n = 1;
    __pyx_t_6.annotated = __pyx_v_annotated;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_py_arg_decl(__pyx_v_s, &__pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_starstar_arg, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":2941
 *         s.next()
 *         starstar_arg = p_py_arg_decl(s, annotated=annotated)
 *     return (args, star_arg, starstar_arg)             # <<<<<<<<<<<<<<
 * 
 * def p_py_arg_decl(s, annotated = 1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_args);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_args);
  __Pyx_GIVEREF(__pyx_v_args);
  __Pyx_INCREF(__pyx_v_star_arg);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_star_arg);
  __Pyx_GIVEREF(__pyx_v_star_arg);
  __Pyx_INCREF(__pyx_v_starstar_arg);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_starstar_arg);
  __Pyx_GIVEREF(__pyx_v_starstar_arg);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2923
 *         return_type_annotation = return_type_annotation)
 * 
 * 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_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":2943
 *     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;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":2944
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2945
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2946
 *     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":2947
 *     name = p_ident(s)
 *     annotation = None
 *     if annotated and s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         annotation = p_test(s)
 */
  __pyx_t_2 = __pyx_v_annotated;
  if (__pyx_t_2) {
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_4 = __pyx_t_2;
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":2948
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2949
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_annotation, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2950
 *         s.next()
 *         annotation = p_test(s)
 *     return Nodes.PyArgDeclNode(pos, name = name, annotation = annotation)             # <<<<<<<<<<<<<<
 * 
 * def p_class_statement(s, decorators):
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_annotation, __pyx_v_annotation) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __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":2943
 *     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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __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":2952
 *     return Nodes.PyArgDeclNode(pos, name = name, annotation = annotation)
 * 
 * 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_starstar_arg = NULL;
  PyObject *__pyx_v_positional_args = NULL;
  PyObject *__pyx_v_keyword_args = NULL;
  PyObject *__pyx_v_star_arg = 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;
  int __pyx_t_3;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_call_parse_args __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 *);
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_class_statement", 0);

  /* "Cython/Compiler/Parsing.py":2954
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2955
 *     # s.sy == 'class'
 *     pos = s.position()
 *     s.next()             # <<<<<<<<<<<<<<
 *     class_name = EncodedString( p_ident(s) )
 *     class_name.encoding = s.source_encoding
 */
  __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_filename = __pyx_f[0]; __pyx_lineno = 2955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2956
 *     pos = s.position()
 *     s.next()
 *     class_name = EncodedString( p_ident(s) )             # <<<<<<<<<<<<<<
 *     class_name.encoding = s.source_encoding
 *     arg_tuple = None
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_class_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2957
 *     s.next()
 *     class_name = EncodedString( p_ident(s) )
 *     class_name.encoding = s.source_encoding             # <<<<<<<<<<<<<<
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2958
 *     class_name = EncodedString( p_ident(s) )
 *     class_name.encoding = s.source_encoding
 *     arg_tuple = None             # <<<<<<<<<<<<<<
 *     keyword_dict = None
 *     starstar_arg = None
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_arg_tuple = Py_None;

  /* "Cython/Compiler/Parsing.py":2959
 *     class_name.encoding = s.source_encoding
 *     arg_tuple = None
 *     keyword_dict = None             # <<<<<<<<<<<<<<
 *     starstar_arg = None
 *     if s.sy == '(':
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_keyword_dict = Py_None;

  /* "Cython/Compiler/Parsing.py":2960
 *     arg_tuple = None
 *     keyword_dict = None
 *     starstar_arg = None             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         positional_args, keyword_args, star_arg, starstar_arg = \
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_starstar_arg = Py_None;

  /* "Cython/Compiler/Parsing.py":2961
 *     keyword_dict = None
 *     starstar_arg = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         positional_args, keyword_args, star_arg, starstar_arg = \
 *                             p_call_parse_args(s, allow_genexp = False)
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":2963
 *     if s.sy == '(':
 *         positional_args, keyword_args, star_arg, starstar_arg = \
 *                             p_call_parse_args(s, allow_genexp = False)             # <<<<<<<<<<<<<<
 *         arg_tuple, keyword_dict = p_call_build_packed_args(
 *             pos, positional_args, keyword_args, star_arg, None)
 */
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.allow_genexp = 0;
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_parse_args(__pyx_v_s, &__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2963; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); 
      } else {
        __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
        __pyx_t_7 = PyList_GET_ITEM(sequence, 3); 
      }
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      #else
      {
        Py_ssize_t i;
        PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7};
        for (i=0; i < 4; i++) {
          PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __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_2,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7};
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __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;
      for (index=0; index < 4; index++) {
        PyObject* item = __pyx_t_9(__pyx_t_8); if (unlikely(!item)) goto __pyx_L4_unpacking_failed;
        __Pyx_GOTREF(item);
        *(temps[index]) = item;
      }
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L5_unpacking_done:;
    }

    /* "Cython/Compiler/Parsing.py":2962
 *     starstar_arg = None
 *     if s.sy == '(':
 *         positional_args, keyword_args, star_arg, starstar_arg = \             # <<<<<<<<<<<<<<
 *                             p_call_parse_args(s, allow_genexp = False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(
 */
    __pyx_v_positional_args = __pyx_t_2;
    __pyx_t_2 = 0;
    __pyx_v_keyword_args = __pyx_t_5;
    __pyx_t_5 = 0;
    __pyx_v_star_arg = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_starstar_arg, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":2964
 *         positional_args, keyword_args, star_arg, starstar_arg = \
 *                             p_call_parse_args(s, allow_genexp = False)
 *         arg_tuple, keyword_dict = p_call_build_packed_args(             # <<<<<<<<<<<<<<
 *             pos, positional_args, keyword_args, star_arg, None)
 *     if arg_tuple is None:
 */
    __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_call_build_packed_args(__pyx_v_pos, __pyx_v_positional_args, __pyx_v_keyword_args, __pyx_v_star_arg, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyList_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_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __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_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext;
      index = 0; __pyx_t_7 = __pyx_t_9(__pyx_t_5); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_5); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L7_unpacking_done:;
    }
    __Pyx_DECREF_SET(__pyx_v_arg_tuple, __pyx_t_7);
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_keyword_dict, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":2966
 *         arg_tuple, keyword_dict = p_call_build_packed_args(
 *             pos, positional_args, keyword_args, star_arg, None)
 *     if arg_tuple is None:             # <<<<<<<<<<<<<<
 *         # XXX: empty arg_tuple
 *         arg_tuple = ExprNodes.TupleNode(pos, args=[])
 */
  __pyx_t_3 = (__pyx_v_arg_tuple == Py_None);
  __pyx_t_10 = (__pyx_t_3 != 0);
  if (__pyx_t_10) {

    /* "Cython/Compiler/Parsing.py":2968
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_args, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_arg_tuple, __pyx_t_5);
    __pyx_t_5 = 0;
    goto __pyx_L8;
  }
  __pyx_L8:;

  /* "Cython/Compiler/Parsing.py":2969
 *         # 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_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_level, __pyx_n_u_class_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (likely(__pyx_t_7 != Py_None)) {
    PyObject* sequence = __pyx_t_7;
    #if CYTHON_COMPILING_IN_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_5);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_v_doc = __pyx_t_6;
  __pyx_t_6 = 0;
  __pyx_v_body = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "Cython/Compiler/Parsing.py":2970
 *         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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_PyClassDefNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);

  /* "Cython/Compiler/Parsing.py":2971
 *     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_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);

  /* "Cython/Compiler/Parsing.py":2970
 *         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_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);

  /* "Cython/Compiler/Parsing.py":2971
 *     doc, body = p_suite_with_docstring(s, Ctx(level='class'))
 *     return Nodes.PyClassDefNode(
 *         pos, name=class_name,             # <<<<<<<<<<<<<<
 *         bases=arg_tuple,
 *         keyword_args=keyword_dict,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_name, __pyx_v_class_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2972
 *     return Nodes.PyClassDefNode(
 *         pos, name=class_name,
 *         bases=arg_tuple,             # <<<<<<<<<<<<<<
 *         keyword_args=keyword_dict,
 *         starstar_arg=starstar_arg,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_bases, __pyx_v_arg_tuple) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2973
 *         pos, name=class_name,
 *         bases=arg_tuple,
 *         keyword_args=keyword_dict,             # <<<<<<<<<<<<<<
 *         starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators,
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_keyword_args, __pyx_v_keyword_dict) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2974
 *         bases=arg_tuple,
 *         keyword_args=keyword_dict,
 *         starstar_arg=starstar_arg,             # <<<<<<<<<<<<<<
 *         doc=doc, body=body, decorators=decorators,
 *         force_py3_semantics=s.context.language_level >= 3)
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_starstar_arg, __pyx_v_starstar_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2975
 *         keyword_args=keyword_dict,
 *         starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators,             # <<<<<<<<<<<<<<
 *         force_py3_semantics=s.context.language_level >= 3)
 * 
 */
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_decorators, __pyx_v_decorators) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2976
 *         starstar_arg=starstar_arg,
 *         doc=doc, body=body, decorators=decorators,
 *         force_py3_semantics=s.context.language_level >= 3)             # <<<<<<<<<<<<<<
 * 
 * def p_c_class_definition(s, pos,  ctx):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_language_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_force_py3_semantics, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2970
 *         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_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2952
 *     return Nodes.PyArgDeclNode(pos, name = name, annotation = annotation)
 * 
 * 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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __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_starstar_arg);
  __Pyx_XDECREF(__pyx_v_positional_args);
  __Pyx_XDECREF(__pyx_v_keyword_args);
  __Pyx_XDECREF(__pyx_v_star_arg);
  __Pyx_XDECREF(__pyx_v_doc);
  __Pyx_XDECREF(__pyx_v_body);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "Cython/Compiler/Parsing.py":2978
 *         force_py3_semantics=s.context.language_level >= 3)
 * 
 * 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;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *(*__pyx_t_10)(PyObject *);
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_class_definition", 0);

  /* "Cython/Compiler/Parsing.py":2980
 * 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_filename = __pyx_f[0]; __pyx_lineno = 2980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2981
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 2981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module_path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2982
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_class_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2983
 *     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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":2984
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":2985
 *     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_filename = __pyx_f[0]; __pyx_lineno = 2985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":2986
 *         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_filename = __pyx_f[0]; __pyx_lineno = 2986; __pyx_clineno = __LINE__; goto __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":2987
 *         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_2 = (__pyx_v_module_path != Py_None) && (PyList_GET_SIZE(__pyx_v_module_path) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2987; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_2;
  }
  if (__pyx_t_5) {

    /* "Cython/Compiler/Parsing.py":2988
 *         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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Qualified_class_name_only_allowe);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Qualified_class_name_only_allowe);
    __Pyx_GIVEREF(__pyx_kp_u_Qualified_class_name_only_allowe);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":2989
 *     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_5 = (__pyx_v_module_path != Py_None) && (PyList_GET_SIZE(__pyx_v_module_path) != 0);
  if (__pyx_t_5) {
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_IDENT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = __pyx_t_4;
    } else {
      __pyx_t_7 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_7;
  } else {
    __pyx_t_2 = __pyx_t_5;
  }
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2990
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 2990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":2991
 *     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_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_as_name = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":2993
 *         as_name = p_ident(s)
 *     else:
 *         as_name = class_name             # <<<<<<<<<<<<<<
 *     objstruct_name = None
 *     typeobj_name = None
 */
    __Pyx_INCREF(__pyx_v_class_name);
    __pyx_v_as_name = __pyx_v_class_name;
  }
  __pyx_L6:;

  /* "Cython/Compiler/Parsing.py":2994
 *     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":2995
 *         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":2996
 *     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":2997
 *     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":2998
 *     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__29, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":2999
 *     base_class_name = None
 *     if s.sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         base_class_path = [p_ident(s)]
 *         while s.sy == '.':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3000
 *     if s.sy == '(':
 *         s.next()
 *         base_class_path = [p_ident(s)]             # <<<<<<<<<<<<<<
 *         while s.sy == '.':
 *             s.next()
 */
    __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_base_class_path = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3001
 *         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__33, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_2) break;

      /* "Cython/Compiler/Parsing.py":3002
 *         base_class_path = [p_ident(s)]
 *         while s.sy == '.':
 *             s.next()             # <<<<<<<<<<<<<<
 *             base_class_path.append(p_ident(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_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3003
 *         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_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_base_class_path, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3004
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3005
 *             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_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__107, __pyx_t_6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __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;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "Cython/Compiler/Parsing.py":3006
 *         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__30, NULL); if (unlikely(__pyx_t_2 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":3007
 *             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, -1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__33, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_base_class_module, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3008
 *         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_6 = __Pyx_GetItemInt_List(__pyx_v_base_class_path, -1, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3008; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_base_class_name, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":3009
 *         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__32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3010
 *         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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_public, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_extern, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = __pyx_t_5;
    } else {
      __pyx_t_7 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = (__pyx_t_7 != 0);
    if (__pyx_t_2) {
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_5 = ((!__pyx_t_7) != 0);
      __pyx_t_7 = __pyx_t_5;
    } else {
      __pyx_t_7 = __pyx_t_2;
    }
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3011
 *     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_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_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_kp_u_Name_options_only_allowed_for_pu);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_kp_u_Name_options_only_allowed_for_pu);
      __Pyx_GIVEREF(__pyx_kp_u_Name_options_only_allowed_for_pu);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L12;
    }
    __pyx_L12:;

    /* "Cython/Compiler/Parsing.py":3012
 *         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_6 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_class_options(__pyx_v_s); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
      PyObject* sequence = __pyx_t_6;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_1);
      #else
      __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
      index = 0; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L13_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_8);
      index = 1; __pyx_t_1 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L13_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L14_unpacking_done;
      __pyx_L13_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L14_unpacking_done:;
    }
    __Pyx_DECREF_SET(__pyx_v_objstruct_name, __pyx_t_8);
    __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_typeobj_name, __pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L11;
  }
  __pyx_L11:;

  /* "Cython/Compiler/Parsing.py":3013
 *             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_7 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":3014
 *         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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3015
 *     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;
      goto __pyx_L16;
    }
    /*else*/ {

      /* "Cython/Compiler/Parsing.py":3017
 *             body_level = 'c_class_pxd'
 *         else:
 *             body_level = 'c_class'             # <<<<<<<<<<<<<<
 *         doc, body = p_suite_with_docstring(s, Ctx(level=body_level))
 *     else:
 */
      __Pyx_INCREF(__pyx_n_u_c_class);
      __pyx_v_body_level = __pyx_n_u_c_class;
    }
    __pyx_L16:;

    /* "Cython/Compiler/Parsing.py":3018
 *         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_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_v_body_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (likely(__pyx_t_1 != Py_None)) {
      PyObject* sequence = __pyx_t_1;
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_6);
      #else
      __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_v_doc = __pyx_t_8;
    __pyx_t_8 = 0;
    __pyx_v_body = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3020
 *         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
 */
    __pyx_t_11.__pyx_n = 1;
    __pyx_t_11.message = __pyx_kp_u_Syntax_error_in_C_class_definiti;
    __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_newline(__pyx_v_s, &__pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3021
 *     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":3022
 *         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_L15:;

  /* "Cython/Compiler/Parsing.py":3023
 *         doc = None
 *         body = None
 *     if ctx.visibility == 'extern':             # <<<<<<<<<<<<<<
 *         if not module_path:
 *             error(pos, "Module name required for 'extern' C class")
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_extern, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":3024
 *         body = None
 *     if ctx.visibility == 'extern':
 *         if not module_path:             # <<<<<<<<<<<<<<
 *             error(pos, "Module name required for 'extern' C class")
 *         if typeobj_name:
 */
    __pyx_t_7 = (__pyx_v_module_path != Py_None) && (PyList_GET_SIZE(__pyx_v_module_path) != 0);
    __pyx_t_2 = ((!__pyx_t_7) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3025
 *     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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Module_name_required_for_extern);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Module_name_required_for_extern);
      __Pyx_GIVEREF(__pyx_kp_u_Module_name_required_for_extern);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L18;
    }
    __pyx_L18:;

    /* "Cython/Compiler/Parsing.py":3026
 *         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_2 = __Pyx_PyObject_IsTrue(__pyx_v_typeobj_name); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3027
 *             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_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Type_object_name_specification_n);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_Type_object_name_specification_n);
      __Pyx_GIVEREF(__pyx_kp_u_Type_object_name_specification_n);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L19;
    }
    __pyx_L19:;
    goto __pyx_L17;
  }

  /* "Cython/Compiler/Parsing.py":3028
 *         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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_public, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3029
 *             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_2 = __Pyx_PyObject_IsTrue(__pyx_v_objstruct_name); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = ((!__pyx_t_2) != 0);
    if (__pyx_t_7) {

      /* "Cython/Compiler/Parsing.py":3030
 *     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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Object_struct_name_specification);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Object_struct_name_specification);
      __Pyx_GIVEREF(__pyx_kp_u_Object_struct_name_specification);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L20;
    }
    __pyx_L20:;

    /* "Cython/Compiler/Parsing.py":3031
 *         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_7 = __Pyx_PyObject_IsTrue(__pyx_v_typeobj_name); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = ((!__pyx_t_7) != 0);
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3032
 *             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_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_pos);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
      __Pyx_GIVEREF(__pyx_v_pos);
      __Pyx_INCREF(__pyx_kp_u_Type_object_name_specification_r);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_Type_object_name_specification_r);
      __Pyx_GIVEREF(__pyx_kp_u_Type_object_name_specification_r);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L21;
    }
    __pyx_L21:;
    goto __pyx_L17;
  }

  /* "Cython/Compiler/Parsing.py":3033
 *         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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_private, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "Cython/Compiler/Parsing.py":3034
 *             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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3035
 *     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_2 = __Pyx_PyObject_IsTrue(__pyx_v_objstruct_name); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_7 = ((!__pyx_t_2) != 0);
      if (__pyx_t_7) {

        /* "Cython/Compiler/Parsing.py":3036
 *         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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Object_struct_name_specification_2);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Object_struct_name_specification_2);
        __Pyx_GIVEREF(__pyx_kp_u_Object_struct_name_specification_2);
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L23;
      }
      __pyx_L23:;

      /* "Cython/Compiler/Parsing.py":3037
 *             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_7 = __Pyx_PyObject_IsTrue(__pyx_v_typeobj_name); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = ((!__pyx_t_7) != 0);
      if (__pyx_t_2) {

        /* "Cython/Compiler/Parsing.py":3038
 *                 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_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_pos);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pos);
        __Pyx_GIVEREF(__pyx_v_pos);
        __Pyx_INCREF(__pyx_kp_u_Type_object_name_specification_r_2);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_Type_object_name_specification_r_2);
        __Pyx_GIVEREF(__pyx_kp_u_Type_object_name_specification_r_2);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L24;
      }
      __pyx_L24:;
      goto __pyx_L22;
    }
    __pyx_L22:;
    goto __pyx_L17;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3040
 *                 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,
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_Invalid_class_visibility_s, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_L17:;

  /* "Cython/Compiler/Parsing.py":3041
 *     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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CClassDefNode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);

  /* "Cython/Compiler/Parsing.py":3042
 *         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_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_visibility, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":3043
 *     return Nodes.CClassDefNode(pos,
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,             # <<<<<<<<<<<<<<
 *         api = ctx.api,
 *         module_name = ".".join(module_path),
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_typedef_flag); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_typedef_flag, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":3044
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,
 *         api = ctx.api,             # <<<<<<<<<<<<<<
 *         module_name = ".".join(module_path),
 *         class_name = class_name,
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_api); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_api, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":3045
 *         typedef_flag = ctx.typedef_flag,
 *         api = ctx.api,
 *         module_name = ".".join(module_path),             # <<<<<<<<<<<<<<
 *         class_name = class_name,
 *         as_name = as_name,
 */
  __pyx_t_9 = PyUnicode_Join(__pyx_kp_u__33, __pyx_v_module_path); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_module_name, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "Cython/Compiler/Parsing.py":3046
 *         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_8, __pyx_n_s_class_name, __pyx_v_class_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3047
 *         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_8, __pyx_n_s_as_name, __pyx_v_as_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3048
 *         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_8, __pyx_n_s_base_class_module, __pyx_v_base_class_module) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3049
 *         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_8, __pyx_n_s_base_class_name, __pyx_v_base_class_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3050
 *         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_8, __pyx_n_s_objstruct_name, __pyx_v_objstruct_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3051
 *         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_8, __pyx_n_s_typeobj_name, __pyx_v_typeobj_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3052
 *         objstruct_name = objstruct_name,
 *         typeobj_name = typeobj_name,
 *         in_pxd = ctx.level == 'module_pxd',             # <<<<<<<<<<<<<<
 *         doc = doc,
 *         body = body)
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = PyObject_RichCompare(__pyx_t_9, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_in_pxd, __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "Cython/Compiler/Parsing.py":3053
 *         typeobj_name = typeobj_name,
 *         in_pxd = ctx.level == 'module_pxd',
 *         doc = doc,             # <<<<<<<<<<<<<<
 *         body = body)
 * 
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3054
 *         in_pxd = ctx.level == 'module_pxd',
 *         doc = doc,
 *         body = body)             # <<<<<<<<<<<<<<
 * 
 * def p_c_class_options(s):
 */
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3041
 *     else:
 *         error(pos, "Invalid class visibility '%s'" % ctx.visibility)
 *     return Nodes.CClassDefNode(pos,             # <<<<<<<<<<<<<<
 *         visibility = ctx.visibility,
 *         typedef_flag = ctx.typedef_flag,
 */
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_12;
  __pyx_t_12 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":2978
 *         force_py3_semantics=s.context.language_level >= 3)
 * 
 * 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_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __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":3056
 *         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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_c_class_options", 0);

  /* "Cython/Compiler/Parsing.py":3057
 * 
 * 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":3058
 * 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":3059
 *     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__32, NULL); if (unlikely(__pyx_t_1 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3060
 *     typeobj_name = None
 *     s.expect('[')
 *     while 1:             # <<<<<<<<<<<<<<
 *         if s.sy != 'IDENT':
 *             break
 */
  while (1) {

    /* "Cython/Compiler/Parsing.py":3061
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3062
 *     while 1:
 *         if s.sy != 'IDENT':
 *             break             # <<<<<<<<<<<<<<
 *         if s.systring == 'object':
 *             s.next()
 */
      goto __pyx_L4_break;
    }

    /* "Cython/Compiler/Parsing.py":3063
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3064
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3065
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_objstruct_name, __pyx_t_2);
      __pyx_t_2 = 0;
      goto __pyx_L6;
    }

    /* "Cython/Compiler/Parsing.py":3066
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3067
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "Cython/Compiler/Parsing.py":3068
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_typeobj_name, __pyx_t_2);
      __pyx_t_2 = 0;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":3069
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3070
 *             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":3071
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L4_break:;

  /* "Cython/Compiler/Parsing.py":3072
 *             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__40, &__pyx_t_3); if (unlikely(__pyx_t_1 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3073
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_objstruct_name);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_objstruct_name);
  __Pyx_GIVEREF(__pyx_v_objstruct_name);
  __Pyx_INCREF(__pyx_v_typeobj_name);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_typeobj_name);
  __Pyx_GIVEREF(__pyx_v_typeobj_name);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3056
 *         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":3076
 * 
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_property_decl", 0);

  /* "Cython/Compiler/Parsing.py":3077
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3078
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3079
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3081
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_level, __pyx_n_u_property) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__; goto __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":3080
 *     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 = Py_True;
  __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_filename = __pyx_f[0]; __pyx_lineno = 3080; __pyx_clineno = __LINE__; goto __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_CPYTHON
    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_filename = __pyx_f[0]; __pyx_lineno = 3080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #if CYTHON_COMPILING_IN_CPYTHON
    __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_filename = __pyx_f[0]; __pyx_lineno = 3080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3080; __pyx_clineno = __LINE__; goto __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":3082
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__; goto __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":3076
 * 
 * 
 * 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":3085
 * 
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_ignorable_statement", 0);

  /* "Cython/Compiler/Parsing.py":3089
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3090
 *     """
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         string_node = p_atom(s)
 *         if s.sy != 'EOF':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_pos = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3091
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 *         string_node = p_atom(s)             # <<<<<<<<<<<<<<
 *         if s.sy != 'EOF':
 *             s.expect_newline("Syntax error in string")
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_atom(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_string_node = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3092
 *         pos = s.position()
 *         string_node = p_atom(s)
 *         if s.sy != 'EOF':             # <<<<<<<<<<<<<<
 *             s.expect_newline("Syntax error in string")
 *         return Nodes.ExprStatNode(pos, expr=string_node)
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3093
 *         string_node = p_atom(s)
 *         if s.sy != 'EOF':
 *             s.expect_newline("Syntax error in string")             # <<<<<<<<<<<<<<
 *         return Nodes.ExprStatNode(pos, expr=string_node)
 *     return None
 */
      __pyx_t_3.__pyx_n = 1;
      __pyx_t_3.message = __pyx_kp_u_Syntax_error_in_string;
      __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_filename = __pyx_f[0]; __pyx_lineno = 3093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L4;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":3094
 *         if s.sy != 'EOF':
 *             s.expect_newline("Syntax error in string")
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_expr, __pyx_v_string_node) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __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":3095
 *             s.expect_newline("Syntax error in string")
 *         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":3085
 * 
 * 
 * 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":3098
 * 
 * 
 * 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_doc_string", 0);

  /* "Cython/Compiler/Parsing.py":3099
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "Cython/Compiler/Parsing.py":3100
 * def p_doc_string(s):
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()             # <<<<<<<<<<<<<<
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         if s.sy != 'EOF':
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_pos = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "Cython/Compiler/Parsing.py":3101
 *     if s.sy == 'BEGIN_STRING':
 *         pos = s.position()
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)             # <<<<<<<<<<<<<<
 *         if s.sy != 'EOF':
 *             s.expect_newline("Syntax error in doc string")
 */
    __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_p_cat_string_literal(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __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_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      #if CYTHON_COMPILING_IN_CPYTHON
      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_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __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":3102
 *         pos = s.position()
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         if s.sy != 'EOF':             # <<<<<<<<<<<<<<
 *             s.expect_newline("Syntax error in doc string")
 *         if kind in ('u', ''):
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_EOF, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3103
 *         kind, bytes_result, unicode_result = p_cat_string_literal(s)
 *         if s.sy != 'EOF':
 *             s.expect_newline("Syntax error in doc string")             # <<<<<<<<<<<<<<
 *         if kind in ('u', ''):
 *             return unicode_result
 */
      __pyx_t_8.__pyx_n = 1;
      __pyx_t_8.message = __pyx_kp_u_Syntax_error_in_doc_string;
      __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_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L6;
    }
    __pyx_L6:;

    /* "Cython/Compiler/Parsing.py":3104
 *         if s.sy != 'EOF':
 *             s.expect_newline("Syntax error in doc string")
 *         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_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_u, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_1) {
      __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_kp_u__48, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_10 = __pyx_t_9;
    } else {
      __pyx_t_10 = __pyx_t_1;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = (__pyx_t_10 != 0);
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3105
 *             s.expect_newline("Syntax error in doc string")
 *         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":3106
 *         if kind in ('u', ''):
 *             return unicode_result
 *         warning(pos, "Python 3 requires docstrings to be unicode strings")             # <<<<<<<<<<<<<<
 *         return bytes_result
 *     else:
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Python_3_requires_docstrings_to);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u_Python_3_requires_docstrings_to);
    __Pyx_GIVEREF(__pyx_kp_u_Python_3_requires_docstrings_to);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_warning, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3107
 *             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;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3109
 *         return bytes_result
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
  }

  /* "Cython/Compiler/Parsing.py":3098
 * 
 * 
 * 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":3112
 * 
 * 
 * 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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_extract_docstring", 0);
  __Pyx_INCREF(__pyx_v_node);

  /* "Cython/Compiler/Parsing.py":3118
 *     (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":3119
 *     """
 *     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":3121
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3121; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3121; __pyx_clineno = __LINE__; goto __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":3122
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3123
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __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":3124
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_stats, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }
    __pyx_L4:;
    goto __pyx_L3;
  }

  /* "Cython/Compiler/Parsing.py":3125
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_IsInstance(__pyx_v_node, __pyx_t_6); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_1) {
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_stats); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __pyx_t_2;
  } else {
    __pyx_t_7 = __pyx_t_1;
  }
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":3126
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_stats = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3127
 *     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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_IsInstance(__pyx_t_6, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = (__pyx_t_7 != 0);
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3128
 *         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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_1) {

        /* "Cython/Compiler/Parsing.py":3129
 *         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 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __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":3130
 *             if stats[0].expr.is_string_literal:
 *                 doc_node = stats[0].expr
 *                 del stats[0]             # <<<<<<<<<<<<<<
 * 
 *     if doc_node is None:
 */
        if (__Pyx_DelItemInt(__pyx_v_stats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L6;
      }
      __pyx_L6:;
      goto __pyx_L5;
    }
    __pyx_L5:;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3132
 *                 del stats[0]
 * 
 *     if doc_node is None:             # <<<<<<<<<<<<<<
 *         doc = None
 *     elif isinstance(doc_node, ExprNodes.BytesNode):
 */
  __pyx_t_1 = (__pyx_v_doc_node == Py_None);
  __pyx_t_7 = (__pyx_t_1 != 0);
  if (__pyx_t_7) {

    /* "Cython/Compiler/Parsing.py":3133
 * 
 *     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;
    goto __pyx_L7;
  }

  /* "Cython/Compiler/Parsing.py":3134
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__; goto __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":3135
 *         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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_kp_u_Python_3_requires_docstrings_to);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_u_Python_3_requires_docstrings_to);
    __Pyx_GIVEREF(__pyx_kp_u_Python_3_requires_docstrings_to);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_warning, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3137
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L7;
  }

  /* "Cython/Compiler/Parsing.py":3138
 *                 "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_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __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":3139
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3140
 *     elif isinstance(doc_node, ExprNodes.StringNode):
 *         doc = doc_node.unicode_value
 *         if doc is None:             # <<<<<<<<<<<<<<
 *             doc = doc_node.value
 *     else:
 */
    __pyx_t_7 = (__pyx_v_doc == Py_None);
    __pyx_t_1 = (__pyx_t_7 != 0);
    if (__pyx_t_1) {

      /* "Cython/Compiler/Parsing.py":3141
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF_SET(__pyx_v_doc, __pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8;
    }
    __pyx_L8:;
    goto __pyx_L7;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3143
 *             doc = doc_node.value
 *     else:
 *         doc = doc_node.value             # <<<<<<<<<<<<<<
 *     return doc, node
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_doc_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_doc = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L7:;

  /* "Cython/Compiler/Parsing.py":3144
 *     else:
 *         doc = doc_node.value
 *     return doc, node             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_doc);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_doc);
  __Pyx_GIVEREF(__pyx_v_doc);
  __Pyx_INCREF(__pyx_v_node);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_node);
  __Pyx_GIVEREF(__pyx_v_node);
  __pyx_r = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "Cython/Compiler/Parsing.py":3112
 * 
 * 
 * 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_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":3147
 * 
 * 
 * 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__108;
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":3148
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_level, __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __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":3149
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3150
 *     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_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "Cython/Compiler/Parsing.py":3151
 *     if s.sy != 'EOF':
 *         s.error("Syntax error in statement [%s,%s]" % (
 *             repr(s.sy), repr(s.systring)))             # <<<<<<<<<<<<<<
 *     return body
 * 
 */
    __pyx_t_2 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_5 = PyObject_Repr(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_v_s->systring;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_6 = PyObject_Repr(__pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;

    /* "Cython/Compiler/Parsing.py":3150
 *     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_6 = PyUnicode_Format(__pyx_kp_u_Syntax_error_in_statement_s_s, __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3150; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3152
 *         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":3147
 * 
 * 
 * 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_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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_code (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s,&__pyx_n_s_level,&__pyx_n_s_ctx,0};
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = __pyx_k__108;
    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)) != 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_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __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":3157
 *     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;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_compiler_directive_comments", 0);

  /* "Cython/Compiler/Parsing.py":3158
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3159
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_2) break;

    /* "Cython/Compiler/Parsing.py":3160
 *     result = {}
 *     while s.sy == 'commentline':
 *         m = _match_compiler_directive_comment(s.systring)             # <<<<<<<<<<<<<<
 *         if m:
 *             directives = m.group(1).strip()
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_s->systring);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s->systring);
    __Pyx_GIVEREF(__pyx_v_s->systring);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing__match_compiler_directive_comment, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "Cython/Compiler/Parsing.py":3161
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {

      /* "Cython/Compiler/Parsing.py":3162
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__109, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_strip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __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":3163
 *         if m:
 *             directives = m.group(1).strip()
 *             try:             # <<<<<<<<<<<<<<
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_4);
        __Pyx_XGOTREF(__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_6);
        /*try:*/ {

          /* "Cython/Compiler/Parsing.py":3164
 *             directives = m.group(1).strip()
 *             try:
 *                 result.update(Options.parse_directive_list(             # <<<<<<<<<<<<<<
 *                     directives, ignore_unknown=True))
 *             except ValueError, e:
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s_update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Options, __pyx_n_s_parse_directive_list); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_3);

          /* "Cython/Compiler/Parsing.py":3165
 *             try:
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))             # <<<<<<<<<<<<<<
 *             except ValueError, e:
 *                 s.error(e.args[0], fatal=False)
 */
          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_v_directives);
          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_directives);
          __Pyx_GIVEREF(__pyx_v_directives);

          /* "Cython/Compiler/Parsing.py":3164
 *             directives = m.group(1).strip()
 *             try:
 *                 result.update(Options.parse_directive_list(             # <<<<<<<<<<<<<<
 *                     directives, ignore_unknown=True))
 *             except ValueError, e:
 */
          __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_8);

          /* "Cython/Compiler/Parsing.py":3165
 *             try:
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))             # <<<<<<<<<<<<<<
 *             except ValueError, e:
 *                 s.error(e.args[0], fatal=False)
 */
          if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_ignore_unknown, Py_True) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}

          /* "Cython/Compiler/Parsing.py":3164
 *             directives = m.group(1).strip()
 *             try:
 *                 result.update(Options.parse_directive_list(             # <<<<<<<<<<<<<<
 *                     directives, ignore_unknown=True))
 *             except ValueError, e:
 */
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_9);
          __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L13_try_end;
        __pyx_L6_error:;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "Cython/Compiler/Parsing.py":3166
 *                 result.update(Options.parse_directive_list(
 *                     directives, ignore_unknown=True))
 *             except ValueError, e:             # <<<<<<<<<<<<<<
 *                 s.error(e.args[0], fatal=False)
 *         s.next()
 */
        __pyx_t_10 = PyErr_ExceptionMatches(__pyx_builtin_ValueError);
        if (__pyx_t_10) {
          __Pyx_AddTraceback("Cython.Compiler.Parsing.p_compiler_directive_comments", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3166; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_8);

          /* "Cython/Compiler/Parsing.py":3167
 *                     directives, ignore_unknown=True))
 *             except ValueError, e:
 *                 s.error(e.args[0], fatal=False)             # <<<<<<<<<<<<<<
 *         s.next()
 *     return result
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_s), __pyx_n_s_error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_args); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;};
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __Pyx_GOTREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11);
          __Pyx_GIVEREF(__pyx_t_11);
          __pyx_t_11 = 0;
          __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_fatal, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 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;
          goto __pyx_L7_exception_handled;
        }
        goto __pyx_L8_except_error;
        __pyx_L8_except_error:;
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
        goto __pyx_L1_error;
        __pyx_L7_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
        __pyx_L13_try_end:;
      }
      goto __pyx_L5;
    }
    __pyx_L5:;

    /* "Cython/Compiler/Parsing.py":3168
 *             except ValueError, e:
 *                 s.error(e.args[0], fatal=False)
 *         s.next()             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
    __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_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "Cython/Compiler/Parsing.py":3169
 *                 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":3157
 *     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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __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":3171
 *     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__110;
  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;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_p_statement_list __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":3172
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pos = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3174
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_directive_comments = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3175
 * 
 *     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":3177
 *     s.parse_comments = False
 * 
 *     if 'language_level' in directive_comments:             # <<<<<<<<<<<<<<
 *         s.context.set_language_level(directive_comments['language_level'])
 * 
 */
  __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_n_u_language_level, __pyx_v_directive_comments, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3178
 * 
 *     if 'language_level' in directive_comments:
 *         s.context.set_language_level(directive_comments['language_level'])             # <<<<<<<<<<<<<<
 * 
 *     doc = p_doc_string(s)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s->context, __pyx_n_s_set_language_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetItem(__pyx_v_directive_comments, __pyx_n_u_language_level); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3178; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3178; __pyx_clineno = __LINE__; goto __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_4); __pyx_t_4 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3180
 *         s.context.set_language_level(directive_comments['language_level'])
 * 
 *     doc = p_doc_string(s)             # <<<<<<<<<<<<<<
 *     if pxd:
 *         level = 'module_pxd'
 */
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_doc_string(__pyx_v_s); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_doc = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":3181
 * 
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3182
 *     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;
    goto __pyx_L4;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3184
 *         level = 'module_pxd'
 *     else:
 *         level = 'module'             # <<<<<<<<<<<<<<
 * 
 *     body = p_statement_list(s, ctx(level=level), first_statement = 1)
 */
    __Pyx_INCREF(__pyx_n_u_module);
    __pyx_v_level = __pyx_n_u_module;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":3186
 *         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_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_level, __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_ctx, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6.__pyx_n = 1;
  __pyx_t_6.first_statement = 1;
  __pyx_t_4 = __pyx_f_6Cython_8Compiler_7Parsing_p_statement_list(__pyx_v_s, __pyx_t_5, &__pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_body = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":3187
 * 
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3188
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "Cython/Compiler/Parsing.py":3189
 *     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_5 = __pyx_v_s->sy;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_1 = PyObject_Repr(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __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_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_1 = 0;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":3188
 *     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_7 = PyUnicode_Format(__pyx_kp_u_Syntax_error_in_statement_s_s, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3188; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":3190
 *         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_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_doc, __pyx_v_doc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_body, __pyx_v_body) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3191
 *             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_5, __pyx_n_s_full_module_name, __pyx_v_full_module_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3192
 *     return ModuleNode(pos, doc = doc, body = body,
 *                       full_module_name = full_module_name,
 *                       directive_comments = directive_comments)             # <<<<<<<<<<<<<<
 * 
 * def p_cpp_class_definition(s, pos,  ctx):
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_directive_comments, __pyx_v_directive_comments) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3190
 *         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_4 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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":3171
 *     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_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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_module (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s,&__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__110;
    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)) != 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_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __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":3194
 *                       directive_comments = directive_comments)
 * 
 * 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_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;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  struct __pyx_opt_args_6Cython_8Compiler_8Scanning_12PyrexScanner_expect_newline __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("p_cpp_class_definition", 0);

  /* "Cython/Compiler/Parsing.py":3196
 * 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_filename = __pyx_f[0]; __pyx_lineno = 3196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3197
 *     # 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_filename = __pyx_f[0]; __pyx_lineno = 3197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_module_path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3198
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_class_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3199
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cname = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3200
 *     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_2 = (__pyx_v_cname == Py_None);
  if ((__pyx_t_2 != 0)) {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_namespace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __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);
  } else {
    __pyx_t_4 = (__pyx_t_2 != 0);
  }
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3201
 *     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_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__95); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3202
 *     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_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__33, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3203
 *         cname = ctx.namespace + "::" + class_name
 *     if s.sy == '.':
 *         error(pos, "Qualified class name not allowed C++ class")             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         s.next()
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos);
    __Pyx_GIVEREF(__pyx_v_pos);
    __Pyx_INCREF(__pyx_kp_u_Qualified_class_name_not_allowed);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_Qualified_class_name_not_allowed);
    __Pyx_GIVEREF(__pyx_kp_u_Qualified_class_name_not_allowed);
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3203; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "Cython/Compiler/Parsing.py":3204
 *     if s.sy == '.':
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         s.next()
 *         templates = [p_ident(s)]
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3205
 *         error(pos, "Qualified class name not allowed C++ class")
 *     if s.sy == '[':
 *         s.next()             # <<<<<<<<<<<<<<
 *         templates = [p_ident(s)]
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "Cython/Compiler/Parsing.py":3206
 *     if s.sy == '[':
 *         s.next()
 *         templates = [p_ident(s)]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_v_templates = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3207
 *         s.next()
 *         templates = [p_ident(s)]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             templates.append(p_ident(s))
 */
    while (1) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) break;

      /* "Cython/Compiler/Parsing.py":3208
 *         templates = [p_ident(s)]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             templates.append(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_filename = __pyx_f[0]; __pyx_lineno = 3208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "Cython/Compiler/Parsing.py":3209
 *         while s.sy == ',':
 *             s.next()
 *             templates.append(p_ident(s))             # <<<<<<<<<<<<<<
 *         s.expect(']')
 *     else:
 */
      __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_ident(__pyx_v_s, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_templates, __pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3210
 *             s.next()
 *             templates.append(p_ident(s))
 *         s.expect(']')             # <<<<<<<<<<<<<<
 *     else:
 *         templates = None
 */
    __pyx_t_4 = ((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_4 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3212
 *         s.expect(']')
 *     else:
 *         templates = None             # <<<<<<<<<<<<<<
 *     if s.sy == '(':
 *         s.next()
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_templates = Py_None;
  }
  __pyx_L5:;

  /* "Cython/Compiler/Parsing.py":3213
 *     else:
 *         templates = None
 *     if s.sy == '(':             # <<<<<<<<<<<<<<
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = templates)]
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__29, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3214
 *         templates = None
 *     if s.sy == '(':
 *         s.next()             # <<<<<<<<<<<<<<
 *         base_classes = [p_c_base_type(s, templates = templates)]
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3215
 *     if s.sy == '(':
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = templates)]             # <<<<<<<<<<<<<<
 *         while s.sy == ',':
 *             s.next()
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)__pyx_v_s));
    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_s));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
    __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __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_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_v_base_classes = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":3216
 *         s.next()
 *         base_classes = [p_c_base_type(s, templates = templates)]
 *         while s.sy == ',':             # <<<<<<<<<<<<<<
 *             s.next()
 *             base_classes.append(p_c_base_type(s, templates = templates))
 */
    while (1) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u_, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) break;

      /* "Cython/Compiler/Parsing.py":3217
 *         base_classes = [p_c_base_type(s, templates = templates)]
 *         while s.sy == ',':
 *             s.next()             # <<<<<<<<<<<<<<
 *             base_classes.append(p_c_base_type(s, templates = templates))
 *         s.expect(')')
 */
      __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_filename = __pyx_f[0]; __pyx_lineno = 3217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "Cython/Compiler/Parsing.py":3218
 *         while s.sy == ',':
 *             s.next()
 *             base_classes.append(p_c_base_type(s, templates = templates))             # <<<<<<<<<<<<<<
 *         s.expect(')')
 *     else:
 */
      __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_s));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_s));
      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_base_classes, __pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "Cython/Compiler/Parsing.py":3219
 *             s.next()
 *             base_classes.append(p_c_base_type(s, templates = templates))
 *         s.expect(')')             # <<<<<<<<<<<<<<
 *     else:
 *         base_classes = []
 */
    __pyx_t_4 = ((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_4 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L8;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3221
 *         s.expect(')')
 *     else:
 *         base_classes = []             # <<<<<<<<<<<<<<
 *     if s.sy == '[':
 *         error(s.position(), "Name options not allowed for C++ class")
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_base_classes = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
  }
  __pyx_L8:;

  /* "Cython/Compiler/Parsing.py":3222
 *     else:
 *         base_classes = []
 *     if s.sy == '[':             # <<<<<<<<<<<<<<
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__32, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3223
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_kp_u_Name_options_not_allowed_for_C_c);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_kp_u_Name_options_not_allowed_for_C_c);
    __Pyx_GIVEREF(__pyx_kp_u_Name_options_not_allowed_for_C_c);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L11;
  }
  __pyx_L11:;

  /* "Cython/Compiler/Parsing.py":3224
 *     if s.sy == '[':
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)             # <<<<<<<<<<<<<<
 *     if s.sy == ':':
 *         s.next()
 */
  __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Parsing_p_nogil(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nogil = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3225
 *         error(s.position(), "Name options not allowed for C++ class")
 *     nogil = p_nogil(s)
 *     if s.sy == ':':             # <<<<<<<<<<<<<<
 *         s.next()
 *         s.expect('NEWLINE')
 */
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_kp_u__3, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_4) {

    /* "Cython/Compiler/Parsing.py":3226
 *     nogil = p_nogil(s)
 *     if s.sy == ':':
 *         s.next()             # <<<<<<<<<<<<<<
 *         s.expect('NEWLINE')
 *         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_filename = __pyx_f[0]; __pyx_lineno = 3226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3227
 *     if s.sy == ':':
 *         s.next()
 *         s.expect('NEWLINE')             # <<<<<<<<<<<<<<
 *         s.expect_indent()
 *         attributes = []
 */
    __pyx_t_4 = ((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_4 == -2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":3228
 *         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_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_filename = __pyx_f[0]; __pyx_lineno = 3228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3229
 *         s.expect('NEWLINE')
 *         s.expect_indent()
 *         attributes = []             # <<<<<<<<<<<<<<
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 *         body_ctx.templates = templates
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_attributes = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "Cython/Compiler/Parsing.py":3230
 *         s.expect_indent()
 *         attributes = []
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)             # <<<<<<<<<<<<<<
 *         body_ctx.templates = templates
 *         while s.sy != 'DEDENT':
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_visibility, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_level, __pyx_n_u_cpp_class) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_nogil); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!__pyx_t_4) {
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_nogil); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __pyx_t_8;
      __pyx_t_8 = 0;
    } else {
      __Pyx_INCREF(__pyx_v_nogil);
      __pyx_t_7 = __pyx_v_nogil;
    }
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_nogil, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __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_v_body_ctx = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "Cython/Compiler/Parsing.py":3231
 *         attributes = []
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 *         body_ctx.templates = templates             # <<<<<<<<<<<<<<
 *         while s.sy != 'DEDENT':
 *             if s.systring == 'cppclass':
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_body_ctx, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "Cython/Compiler/Parsing.py":3232
 *         body_ctx = Ctx(visibility = ctx.visibility, level='cpp_class', nogil=nogil or ctx.nogil)
 *         body_ctx.templates = templates
 *         while s.sy != 'DEDENT':             # <<<<<<<<<<<<<<
 *             if s.systring == 'cppclass':
 *                 attributes.append(
 */
    while (1) {
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_DEDENT, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_4) break;

      /* "Cython/Compiler/Parsing.py":3233
 *         body_ctx.templates = templates
 *         while s.sy != 'DEDENT':
 *             if s.systring == 'cppclass':             # <<<<<<<<<<<<<<
 *                 attributes.append(
 *                     p_cpp_class_definition(s, s.position(), body_ctx))
 */
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->systring, __pyx_n_u_cppclass, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":3235
 *             if s.systring == 'cppclass':
 *                 attributes.append(
 *                     p_cpp_class_definition(s, s.position(), body_ctx))             # <<<<<<<<<<<<<<
 *             elif s.sy != 'pass':
 *                 attributes.append(
 */
        __pyx_t_7 = ((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_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = __pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition(__pyx_v_s, __pyx_t_7, __pyx_v_body_ctx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":3234
 *         while s.sy != 'DEDENT':
 *             if s.systring == 'cppclass':
 *                 attributes.append(             # <<<<<<<<<<<<<<
 *                     p_cpp_class_definition(s, s.position(), body_ctx))
 *             elif s.sy != 'pass':
 */
        __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_attributes, __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L15;
      }

      /* "Cython/Compiler/Parsing.py":3236
 *                 attributes.append(
 *                     p_cpp_class_definition(s, s.position(), body_ctx))
 *             elif s.sy != 'pass':             # <<<<<<<<<<<<<<
 *                 attributes.append(
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 */
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_s->sy, __pyx_n_u_pass, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_4) {

        /* "Cython/Compiler/Parsing.py":3238
 *             elif s.sy != 'pass':
 *                 attributes.append(
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))             # <<<<<<<<<<<<<<
 *             else:
 *                 s.next()
 */
        __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_filename = __pyx_f[0]; __pyx_lineno = 3238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration(__pyx_v_s, __pyx_t_5, __pyx_v_body_ctx); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "Cython/Compiler/Parsing.py":3237
 *                     p_cpp_class_definition(s, s.position(), body_ctx))
 *             elif s.sy != 'pass':
 *                 attributes.append(             # <<<<<<<<<<<<<<
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 *             else:
 */
        __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_attributes, __pyx_t_7); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L15;
      }
      /*else*/ {

        /* "Cython/Compiler/Parsing.py":3240
 *                     p_c_func_or_var_declaration(s, s.position(), body_ctx))
 *             else:
 *                 s.next()             # <<<<<<<<<<<<<<
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()
 */
        __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_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "Cython/Compiler/Parsing.py":3241
 *             else:
 *                 s.next()
 *                 s.expect_newline("Expected a newline")             # <<<<<<<<<<<<<<
 *         s.expect_dedent()
 *     else:
 */
        __pyx_t_9.__pyx_n = 1;
        __pyx_t_9.message = __pyx_kp_u_Expected_a_newline;
        __pyx_t_7 = ((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_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __pyx_L15:;
    }

    /* "Cython/Compiler/Parsing.py":3242
 *                 s.next()
 *                 s.expect_newline("Expected a newline")
 *         s.expect_dedent()             # <<<<<<<<<<<<<<
 *     else:
 *         attributes = None
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_6Cython_8Compiler_8Scanning_PyrexScanner *)__pyx_v_s->__pyx_base.__pyx_vtab)->expect_dedent(__pyx_v_s); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L12;
  }
  /*else*/ {

    /* "Cython/Compiler/Parsing.py":3244
 *         s.expect_dedent()
 *     else:
 *         attributes = None             # <<<<<<<<<<<<<<
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_attributes = Py_None;

    /* "Cython/Compiler/Parsing.py":3245
 *     else:
 *         attributes = None
 *         s.expect_newline("Syntax error in C++ class definition")             # <<<<<<<<<<<<<<
 *     return Nodes.CppClassNode(pos,
 *         name = class_name,
 */
    __pyx_t_9.__pyx_n = 1;
    __pyx_t_9.message = __pyx_kp_u_Syntax_error_in_C_class_definiti_2;
    __pyx_t_7 = ((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_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_L12:;

  /* "Cython/Compiler/Parsing.py":3246
 *         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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_n_s_CppClassNode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_pos);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos);
  __Pyx_GIVEREF(__pyx_v_pos);
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "Cython/Compiler/Parsing.py":3247
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,
 *         name = class_name,             # <<<<<<<<<<<<<<
 *         cname = cname,
 *         base_classes = base_classes,
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name, __pyx_v_class_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3248
 *     return Nodes.CppClassNode(pos,
 *         name = class_name,
 *         cname = cname,             # <<<<<<<<<<<<<<
 *         base_classes = base_classes,
 *         visibility = ctx.visibility,
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cname, __pyx_v_cname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3249
 *         name = class_name,
 *         cname = cname,
 *         base_classes = base_classes,             # <<<<<<<<<<<<<<
 *         visibility = ctx.visibility,
 *         in_pxd = ctx.level == 'module_pxd',
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_classes, __pyx_v_base_classes) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3250
 *         cname = cname,
 *         base_classes = base_classes,
 *         visibility = ctx.visibility,             # <<<<<<<<<<<<<<
 *         in_pxd = ctx.level == 'module_pxd',
 *         attributes = attributes,
 */
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_visibility); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_visibility, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "Cython/Compiler/Parsing.py":3251
 *         base_classes = base_classes,
 *         visibility = ctx.visibility,
 *         in_pxd = ctx.level == 'module_pxd',             # <<<<<<<<<<<<<<
 *         attributes = attributes,
 *         templates = templates)
 */
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ctx, __pyx_n_s_level); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = PyObject_RichCompare(__pyx_t_8, __pyx_n_u_module_pxd, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_in_pxd, __pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "Cython/Compiler/Parsing.py":3252
 *         visibility = ctx.visibility,
 *         in_pxd = ctx.level == 'module_pxd',
 *         attributes = attributes,             # <<<<<<<<<<<<<<
 *         templates = templates)
 * 
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_attributes, __pyx_v_attributes) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3253
 *         in_pxd = ctx.level == 'module_pxd',
 *         attributes = attributes,
 *         templates = templates)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_templates, __pyx_v_templates) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":3246
 *         attributes = None
 *         s.expect_newline("Syntax error in C++ class definition")
 *     return Nodes.CppClassNode(pos,             # <<<<<<<<<<<<<<
 *         name = class_name,
 *         cname = cname,
 */
  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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":3194
 *                       directive_comments = directive_comments)
 * 
 * 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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __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_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":3263
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     from types import ListType, TupleType
 *     from Nodes import 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);
  CYTHON_UNUSED PyObject *__pyx_v_ListType = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_TupleType = NULL;
  PyObject *__pyx_v_Node = NULL;
  PyObject *__pyx_v_ind = NULL;
  PyObject *__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;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  struct __pyx_opt_args_6Cython_8Compiler_7Parsing_print_parse_tree __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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":3264
 * 
 * def print_parse_tree(f, node, level, key = None):
 *     from types import ListType, TupleType             # <<<<<<<<<<<<<<
 *     from Nodes import Node
 *     ind = "  " * level
 */
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_ListType);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ListType);
  __Pyx_GIVEREF(__pyx_n_s_ListType);
  __Pyx_INCREF(__pyx_n_s_TupleType);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_TupleType);
  __Pyx_GIVEREF(__pyx_n_s_TupleType);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_types, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ListType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_ListType = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TupleType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_TupleType = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":3265
 * def print_parse_tree(f, node, level, key = None):
 *     from types import ListType, TupleType
 *     from Nodes import Node             # <<<<<<<<<<<<<<
 *     ind = "  " * level
 *     if node:
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Node);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Node);
  __Pyx_GIVEREF(__pyx_n_s_Node);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Nodes, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_Node = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3266
 *     from types import ListType, TupleType
 *     from Nodes import Node
 *     ind = "  " * level             # <<<<<<<<<<<<<<
 *     if node:
 *         f.write(ind)
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_kp_u__111, __pyx_v_level); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ind = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3267
 *     from Nodes import Node
 *     ind = "  " * level
 *     if node:             # <<<<<<<<<<<<<<
 *         f.write(ind)
 *         if key:
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_node); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "Cython/Compiler/Parsing.py":3268
 *     ind = "  " * level
 *     if node:
 *         f.write(ind)             # <<<<<<<<<<<<<<
 *         if key:
 *             f.write("%s: " % key)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_ind);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ind);
    __Pyx_GIVEREF(__pyx_v_ind);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3268; __pyx_clineno = __LINE__; goto __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_4); __pyx_t_4 = 0;

    /* "Cython/Compiler/Parsing.py":3269
 *     if node:
 *         f.write(ind)
 *         if key:             # <<<<<<<<<<<<<<
 *             f.write("%s: " % key)
 *         t = type(node)
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_key); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":3270
 *         f.write(ind)
 *         if key:
 *             f.write("%s: " % key)             # <<<<<<<<<<<<<<
 *         t = type(node)
 *         if t is tuple:
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_s_2, __pyx_v_key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L4;
    }
    __pyx_L4:;

    /* "Cython/Compiler/Parsing.py":3271
 *         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 = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_node)));

    /* "Cython/Compiler/Parsing.py":3272
 *             f.write("%s: " % key)
 *         t = type(node)
 *         if t is tuple:             # <<<<<<<<<<<<<<
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in xrange(2, len(node)):
 */
    __pyx_t_3 = (__pyx_v_t == ((PyObject*)(&PyTuple_Type)));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (__pyx_t_5) {

      /* "Cython/Compiler/Parsing.py":3273
 *         t = type(node)
 *         if t is tuple:
 *             f.write("(%s @ %s\n" % (node[0], node[1]))             # <<<<<<<<<<<<<<
 *             for i in xrange(2, len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_node, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_node, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_1 = 0;
      __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_s_s, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3274
 *         if t is tuple:
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in xrange(2, len(node)):             # <<<<<<<<<<<<<<
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s)\n" % ind)
 */
      __pyx_t_7 = PyObject_Length(__pyx_v_node); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      for (__pyx_t_8 = 2; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
        __pyx_v_i = __pyx_t_8;

        /* "Cython/Compiler/Parsing.py":3275
 *             f.write("(%s @ %s\n" % (node[0], node[1]))
 *             for i in xrange(2, len(node)):
 *                 print_parse_tree(f, node[i], level+1)             # <<<<<<<<<<<<<<
 *             f.write("%s)\n" % ind)
 *             return
 */
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_node, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyNumber_Add(__pyx_v_level, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_t_4, __pyx_t_6, 0, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __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":3276
 *             for i in xrange(2, len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s)\n" % ind)             # <<<<<<<<<<<<<<
 *             return
 *         elif isinstance(node, Node):
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_s_3, __pyx_v_ind); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __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_6); __pyx_t_6 = 0;

      /* "Cython/Compiler/Parsing.py":3277
 *                 print_parse_tree(f, node[i], level+1)
 *             f.write("%s)\n" % ind)
 *             return             # <<<<<<<<<<<<<<
 *         elif isinstance(node, Node):
 *             try:
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;
    }

    /* "Cython/Compiler/Parsing.py":3278
 *             f.write("%s)\n" % ind)
 *             return
 *         elif isinstance(node, Node):             # <<<<<<<<<<<<<<
 *             try:
 *                 tag = node.tag
 */
    __pyx_t_5 = PyObject_IsInstance(__pyx_v_node, __pyx_v_Node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":3279
 *             return
 *         elif isinstance(node, Node):
 *             try:             # <<<<<<<<<<<<<<
 *                 tag = node.tag
 *             except AttributeError:
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        /*try:*/ {

          /* "Cython/Compiler/Parsing.py":3280
 *         elif isinstance(node, 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_filename = __pyx_f[0]; __pyx_lineno = 3280; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_tag = __pyx_t_6;
          __pyx_t_6 = 0;
        }
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L15_try_end;
        __pyx_L8_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3281
 *             try:
 *                 tag = node.tag
 *             except AttributeError:             # <<<<<<<<<<<<<<
 *                 tag = node.__class__.__name__
 *             f.write("%s @ %s\n" % (tag, node.pos))
 */
        __pyx_t_12 = PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
        if (__pyx_t_12) {
          __Pyx_AddTraceback("Cython.Compiler.Parsing.print_parse_tree", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3281; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GOTREF(__pyx_t_2);

          /* "Cython/Compiler/Parsing.py":3282
 *                 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_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name_2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_13);
          __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L9_exception_handled;
        }
        goto __pyx_L10_except_error;
        __pyx_L10_except_error:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
        goto __pyx_L1_error;
        __pyx_L9_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
        __pyx_L15_try_end:;
      }

      /* "Cython/Compiler/Parsing.py":3283
 *             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_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_tag);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_tag);
      __Pyx_GIVEREF(__pyx_v_tag);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_s_s_2, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3284
 *                 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_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(__pyx_t_6 == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_2 = __Pyx_dict_iterator(__pyx_t_6, 0, __pyx_n_s_items, (&__pyx_t_8), (&__pyx_t_12)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_4);
      __pyx_t_4 = __pyx_t_2;
      __pyx_t_2 = 0;
      while (1) {
        __pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_8, &__pyx_t_7, &__pyx_t_2, &__pyx_t_6, NULL, __pyx_t_12);
        if (unlikely(__pyx_t_14 == 0)) break;
        if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "Cython/Compiler/Parsing.py":3285
 *             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_3 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_tag, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_3) {
          __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_pos, Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_15 = __pyx_t_5;
        } else {
          __pyx_t_15 = __pyx_t_3;
        }
        if (__pyx_t_15) {

          /* "Cython/Compiler/Parsing.py":3286
 *             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_6 = PyNumber_Add(__pyx_v_level, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_16.__pyx_n = 1;
          __pyx_t_16.key = __pyx_v_name;
          __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_v_value, __pyx_t_6, 0, &__pyx_t_16); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L20;
        }
        __pyx_L20:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3287
 *                 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":3288
 *                     print_parse_tree(f, value, level+1, name)
 *             return
 *         elif t is list:             # <<<<<<<<<<<<<<
 *             f.write("[\n")
 *             for i in xrange(len(node)):
 */
    __pyx_t_15 = (__pyx_v_t == ((PyObject*)(&PyList_Type)));
    __pyx_t_3 = (__pyx_t_15 != 0);
    if (__pyx_t_3) {

      /* "Cython/Compiler/Parsing.py":3289
 *             return
 *         elif t is list:
 *             f.write("[\n")             # <<<<<<<<<<<<<<
 *             for i in xrange(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_filename = __pyx_f[0]; __pyx_lineno = 3289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__113, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3289; __pyx_clineno = __LINE__; goto __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":3290
 *         elif t is list:
 *             f.write("[\n")
 *             for i in xrange(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_filename = __pyx_f[0]; __pyx_lineno = 3290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7+=1) {
        __pyx_v_i = __pyx_t_7;

        /* "Cython/Compiler/Parsing.py":3291
 *             f.write("[\n")
 *             for i in xrange(len(node)):
 *                 print_parse_tree(f, node[i], level+1)             # <<<<<<<<<<<<<<
 *             f.write("%s]\n" % ind)
 *             return
 */
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_node, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3291; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PyNumber_Add(__pyx_v_level, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Parsing_print_parse_tree(__pyx_v_f, __pyx_t_2, __pyx_t_4, 0, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3291; __pyx_clineno = __LINE__; goto __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_6); __pyx_t_6 = 0;
      }

      /* "Cython/Compiler/Parsing.py":3292
 *             for i in xrange(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_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_s_4, __pyx_v_ind); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "Cython/Compiler/Parsing.py":3293
 *                 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;
    }
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "Cython/Compiler/Parsing.py":3294
 *             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_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_ind);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ind);
  __Pyx_GIVEREF(__pyx_v_ind);
  __Pyx_INCREF(__pyx_v_node);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_node);
  __Pyx_GIVEREF(__pyx_v_node);
  __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_s_s_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "Cython/Compiler/Parsing.py":3263
 * #----------------------------------------------
 * 
 * def print_parse_tree(f, node, level, key = None):             # <<<<<<<<<<<<<<
 *     from types import ListType, TupleType
 *     from Nodes import 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_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("Cython.Compiler.Parsing.print_parse_tree", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ListType);
  __Pyx_XDECREF(__pyx_v_TupleType);
  __Pyx_XDECREF(__pyx_v_Node);
  __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 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 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_filename = __pyx_f[0]; __pyx_lineno = 3263; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3263; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3263; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3263; __pyx_clineno = __LINE__; goto __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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 3263; __pyx_clineno = __LINE__; goto __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[] = {
  {__Pyx_NAMESTR("make_slice_node"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_1make_slice_node, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("p_c_base_type"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_3p_c_base_type, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("p_c_declarator"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_5p_c_declarator, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("p_c_arg_list"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_7p_c_arg_list, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("p_code"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_9p_code, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("p_module"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_11p_module, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {__Pyx_NAMESTR("print_parse_tree"), (PyCFunction)__pyx_pw_6Cython_8Compiler_7Parsing_13print_parse_tree, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
  {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
    __Pyx_NAMESTR("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_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_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_BytesLiteral, __pyx_k_BytesLiteral, sizeof(__pyx_k_BytesLiteral), 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_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_enum_cannot_be_de, __pyx_k_C_struct_union_enum_cannot_be_de, sizeof(__pyx_k_C_struct_union_enum_cannot_be_de), 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_Cython, __pyx_k_Cython, sizeof(__pyx_k_Cython), 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_s_Cython_Compiler_Scanning, __pyx_k_Cython_Compiler_Scanning, sizeof(__pyx_k_Cython_Compiler_Scanning), 0, 0, 1, 1},
  {&__pyx_n_u_DECORATOR, __pyx_k_DECORATOR, sizeof(__pyx_k_DECORATOR), 0, 1, 0, 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_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_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_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_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
  {&__pyx_n_s_KeywordArgsNode, __pyx_k_KeywordArgsNode, sizeof(__pyx_k_KeywordArgsNode), 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_ListType, __pyx_k_ListType, sizeof(__pyx_k_ListType), 0, 0, 1, 1},
  {&__pyx_n_s_MemoryViewSliceTypeNode, __pyx_k_MemoryViewSliceTypeNode, sizeof(__pyx_k_MemoryViewSliceTypeNode), 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_kp_u_Non_keyword_arg_following_star_a, __pyx_k_Non_keyword_arg_following_star_a, sizeof(__pyx_k_Non_keyword_arg_following_star_a), 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_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_kp_u_Relative_cimport_is_not_supporte, __pyx_k_Relative_cimport_is_not_supporte, sizeof(__pyx_k_Relative_cimport_is_not_supporte), 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_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_StarredTargetNode, __pyx_k_StarredTargetNode, sizeof(__pyx_k_StarredTargetNode), 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_StringNode, __pyx_k_StringNode, sizeof(__pyx_k_StringNode), 0, 0, 1, 1},
  {&__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_n_s_TupleType, __pyx_k_TupleType, sizeof(__pyx_k_TupleType), 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_kp_s_Users_robertwb_sage_cython_cyth, __pyx_k_Users_robertwb_sage_cython_cyth, sizeof(__pyx_k_Users_robertwb_sage_cython_cyth), 0, 0, 1, 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__105, __pyx_k__105, sizeof(__pyx_k__105), 0, 1, 0, 0},
  {&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
  {&__pyx_kp_u__111, __pyx_k__111, sizeof(__pyx_k__111), 0, 1, 0, 0},
  {&__pyx_kp_u__112, __pyx_k__112, sizeof(__pyx_k__112), 0, 1, 0, 0},
  {&__pyx_kp_u__118, __pyx_k__118, sizeof(__pyx_k__118), 0, 1, 0, 0},
  {&__pyx_kp_u__119, __pyx_k__119, sizeof(__pyx_k__119), 0, 1, 0, 0},
  {&__pyx_kp_u__120, __pyx_k__120, sizeof(__pyx_k__120), 0, 1, 0, 0},
  {&__pyx_kp_u__127, __pyx_k__127, sizeof(__pyx_k__127), 0, 1, 0, 0},
  {&__pyx_kp_u__128, __pyx_k__128, sizeof(__pyx_k__128), 0, 1, 0, 0},
  {&__pyx_kp_u__129, __pyx_k__129, sizeof(__pyx_k__129), 0, 1, 0, 0},
  {&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 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__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__24, __pyx_k__24, sizeof(__pyx_k__24), 0, 1, 0, 0},
  {&__pyx_kp_u__25, __pyx_k__25, sizeof(__pyx_k__25), 0, 1, 0, 0},
  {&__pyx_kp_u__27, __pyx_k__27, sizeof(__pyx_k__27), 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__32, __pyx_k__32, sizeof(__pyx_k__32), 0, 1, 0, 0},
  {&__pyx_kp_u__33, __pyx_k__33, sizeof(__pyx_k__33), 0, 1, 0, 0},
  {&__pyx_kp_u__34, __pyx_k__34, sizeof(__pyx_k__34), 0, 1, 0, 0},
  {&__pyx_kp_u__36, __pyx_k__36, sizeof(__pyx_k__36), 0, 1, 0, 0},
  {&__pyx_kp_u__40, __pyx_k__40, sizeof(__pyx_k__40), 0, 1, 0, 0},
  {&__pyx_kp_u__44, __pyx_k__44, sizeof(__pyx_k__44), 0, 1, 0, 0},
  {&__pyx_kp_u__45, __pyx_k__45, sizeof(__pyx_k__45), 0, 1, 0, 0},
  {&__pyx_kp_u__48, __pyx_k__48, sizeof(__pyx_k__48), 0, 1, 0, 0},
  {&__pyx_kp_u__54, __pyx_k__54, sizeof(__pyx_k__54), 0, 1, 0, 0},
  {&__pyx_kp_u__55, __pyx_k__55, sizeof(__pyx_k__55), 0, 1, 0, 0},
  {&__pyx_kp_u__58, __pyx_k__58, sizeof(__pyx_k__58), 0, 1, 0, 0},
  {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
  {&__pyx_kp_u__60, __pyx_k__60, sizeof(__pyx_k__60), 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__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0},
  {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0},
  {&__pyx_kp_u__95, __pyx_k__95, sizeof(__pyx_k__95), 0, 1, 0, 0},
  {&__pyx_kp_u__96, __pyx_k__96, sizeof(__pyx_k__96), 0, 1, 0, 0},
  {&__pyx_kp_u__97, __pyx_k__97, sizeof(__pyx_k__97), 0, 1, 0, 0},
  {&__pyx_kp_u__98, __pyx_k__98, sizeof(__pyx_k__98), 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_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_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_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_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_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_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_close, __pyx_k_close, sizeof(__pyx_k_close), 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_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_u_continue, __pyx_k_continue, sizeof(__pyx_k_continue), 0, 1, 0, 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_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_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_n_s_encoding, __pyx_k_encoding, sizeof(__pyx_k_encoding), 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_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_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_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_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_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_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_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_syntax, __pyx_k_invalid_syntax, sizeof(__pyx_k_invalid_syntax), 0, 1, 0, 0},
  {&__pyx_n_u_is, __pyx_k_is, sizeof(__pyx_k_is), 0, 1, 0, 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_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_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_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_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
  {&__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_kp_u_only_one_star_arg_parameter_allo, __pyx_k_only_one_star_arg_parameter_allo, sizeof(__pyx_k_only_one_star_arg_parameter_allo), 0, 1, 0, 0},
  {&__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_s_ord, __pyx_k_ord, sizeof(__pyx_k_ord), 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_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_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_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_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_rU, __pyx_k_rU, sizeof(__pyx_k_rU), 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_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_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_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
  {&__pyx_kp_u_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 1, 0, 0},
  {&__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_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_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_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_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_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_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_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_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1},
  {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 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},
  {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_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_ord = __Pyx_GetBuiltinName(__pyx_n_s_ord); if (!__pyx_builtin_ord) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #if PY_MAJOR_VERSION >= 3
  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #else
  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  return 0;
  __pyx_L1_error:;
  return -1;
}

static int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "Cython/Compiler/Parsing.py":150
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "Cython/Compiler/Parsing.py":166
 * 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_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "Cython/Compiler/Parsing.py":248
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "Cython/Compiler/Parsing.py":253
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  /* "Cython/Compiler/Parsing.py":258
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "Cython/Compiler/Parsing.py":263
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "Cython/Compiler/Parsing.py":268
 * 
 * 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_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "Cython/Compiler/Parsing.py":273
 * 
 * def p_term(s):
 *     return p_binop_expr(s, ('*', '/', '%', '//'), p_factor)             # <<<<<<<<<<<<<<
 * 
 * #factor: ('+'|'-'|'~'|'&'|typecast|sizeof) factor | power
 */
  __pyx_tuple__23 = PyTuple_Pack(4, __pyx_kp_u__6, __pyx_kp_u__2, __pyx_kp_u__21, __pyx_kp_u__22); if (unlikely(!__pyx_tuple__23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);

  /* "Cython/Compiler/Parsing.py":310
 *     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__26 = PyTuple_Pack(1, __pyx_kp_u_Unknown_type); if (unlikely(!__pyx_tuple__26)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "Cython/Compiler/Parsing.py":360
 *     else:
 *         if is_yield_from:
 *             s.error("'yield from' requires a source argument",             # <<<<<<<<<<<<<<
 *                     pos=pos, fatal=False)
 *         arg = None
 */
  __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_u_yield_from_requires_a_source_ar); if (unlikely(!__pyx_tuple__31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "Cython/Compiler/Parsing.py":423
 *         if s.sy == '*':
 *             if star_arg:
 *                 s.error("only one star-arg parameter allowed",             # <<<<<<<<<<<<<<
 *                         pos=s.position())
 *             s.next()
 */
  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_only_one_star_arg_parameter_allo); if (unlikely(!__pyx_tuple__35)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "Cython/Compiler/Parsing.py":432
 *                 s.next()
 *                 if not arg.is_name:
 *                     s.error("Expected an identifier before '='",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 encoded_name = EncodedString(arg.name)
 */
  __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_u_Expected_an_identifier_before); if (unlikely(!__pyx_tuple__37)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);

  /* "Cython/Compiler/Parsing.py":441
 *             else:
 *                 if keyword_args:
 *                     s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 if star_arg:
 */
  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_u_Non_keyword_arg_following_keywor); if (unlikely(!__pyx_tuple__38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);

  /* "Cython/Compiler/Parsing.py":444
 *                             pos=arg.pos)
 *                 if star_arg:
 *                     s.error("Non-keyword arg following star-arg",             # <<<<<<<<<<<<<<
 *                             pos=arg.pos)
 *                 positional_args.append(arg)
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_u_Non_keyword_arg_following_star_a); if (unlikely(!__pyx_tuple__39)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "Cython/Compiler/Parsing.py":551
 *     # many slice elements were encountered.
 *     pos = s.position()
 *     start = p_slice_element(s, (':',))             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         return [start]
 */
  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_u__3); if (unlikely(!__pyx_tuple__41)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);

  /* "Cython/Compiler/Parsing.py":555
 *         return [start]
 *     s.next()
 *     stop = p_slice_element(s, (':', ',', ']'))             # <<<<<<<<<<<<<<
 *     if s.sy != ':':
 *         return [start, stop]
 */
  __pyx_tuple__42 = PyTuple_Pack(3, __pyx_kp_u__3, __pyx_kp_u_, __pyx_kp_u__40); if (unlikely(!__pyx_tuple__42)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);

  /* "Cython/Compiler/Parsing.py":559
 *         return [start, stop]
 *     s.next()
 *     step = p_slice_element(s, (':', ',', ']'))             # <<<<<<<<<<<<<<
 *     return [start, stop, step]
 * 
 */
  __pyx_tuple__43 = PyTuple_Pack(3, __pyx_kp_u__3, __pyx_kp_u_, __pyx_kp_u__40); if (unlikely(!__pyx_tuple__43)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);

  /* "Cython/Compiler/Parsing.py":629
 *         return ExprNodes.FloatNode(pos, value = value)
 *     elif sy == 'IMAG':
 *         value = s.systring[:-1]             # <<<<<<<<<<<<<<
 *         s.next()
 *         return ExprNodes.ImagNode(pos, value = value)
 */
  __pyx_slice__46 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__46)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__46);
  __Pyx_GIVEREF(__pyx_slice__46);

  /* "Cython/Compiler/Parsing.py":656
 *             return p_name(s, name)
 *     else:
 *         s.error("Expected an identifier or literal")             # <<<<<<<<<<<<<<
 * 
 * def p_int_literal(s):
 */
  __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_u_Expected_an_identifier_or_litera); if (unlikely(!__pyx_tuple__47)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);

  /* "Cython/Compiler/Parsing.py":768
 *             return bytes_value
 *         else:
 *             s.error("internal parser configuration error")             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
  __pyx_tuple__49 = PyTuple_Pack(1, __pyx_kp_u_internal_parser_configuration_er); if (unlikely(!__pyx_tuple__49)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);

  /* "Cython/Compiler/Parsing.py":791
 *     is_python3_source = s.context.language_level >= 3
 *     has_non_ASCII_literal_characters = False
 *     kind = s.systring[:1].lower()             # <<<<<<<<<<<<<<
 *     if kind == 'r':
 *         # Py3 allows both 'br' and 'rb' as prefix
 */
  __pyx_slice__50 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__50)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__50);
  __Pyx_GIVEREF(__pyx_slice__50);

  /* "Cython/Compiler/Parsing.py":794
 *     if kind == 'r':
 *         # Py3 allows both 'br' and 'rb' as prefix
 *         if s.systring[1:2].lower() == 'b':             # <<<<<<<<<<<<<<
 *             kind = 'b'
 *         else:
 */
  __pyx_slice__51 = PySlice_New(__pyx_int_1, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__51)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__51);
  __Pyx_GIVEREF(__pyx_slice__51);

  /* "Cython/Compiler/Parsing.py":800
 *         is_raw = True
 *     elif kind in 'ub':
 *         is_raw = s.systring[1:2].lower() == 'r'             # <<<<<<<<<<<<<<
 *     elif kind != 'c':
 *         kind = ''
 */
  __pyx_slice__52 = PySlice_New(__pyx_int_1, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__52)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__52);
  __Pyx_GIVEREF(__pyx_slice__52);

  /* "Cython/Compiler/Parsing.py":855
 *                         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__53 = PyTuple_Pack(1, __pyx_n_u_u); if (unlikely(!__pyx_tuple__53)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);

  /* "Cython/Compiler/Parsing.py":876
 *             break
 *         elif sy == 'EOF':
 *             s.error("Unclosed string literal", pos=pos)             # <<<<<<<<<<<<<<
 *         else:
 *             s.error("Unexpected token %r:%r in string literal" %
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_u_Unclosed_string_literal); if (unlikely(!__pyx_tuple__56)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "Cython/Compiler/Parsing.py":891
 *             # Python 3 forbids literal non-ASCII characters in byte strings
 *             if kind != 'u':
 *                 s.error("bytes can only contain ASCII literal characters.",             # <<<<<<<<<<<<<<
 *                         pos=pos, fatal=False)
 *             bytes_value = None
 */
  __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_u_bytes_can_only_contain_ASCII_lit); if (unlikely(!__pyx_tuple__57)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);

  /* "Cython/Compiler/Parsing.py":1121
 *         # 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__59 = PyTuple_Pack(1, __pyx_kp_u_a_starred_assignment_target_must); if (unlikely(!__pyx_tuple__59)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "Cython/Compiler/Parsing.py":1142
 *             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__61 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__61)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__61);
  __Pyx_GIVEREF(__pyx_slice__61);

  /* "Cython/Compiler/Parsing.py":1205
 *     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__62 = PyTuple_Pack(1, __pyx_kp_u_tuple_variant_of_exec_does_not_s); if (unlikely(!__pyx_tuple__62)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);

  /* "Cython/Compiler/Parsing.py":1298
 *             if as_name and "." in dotted_name:
 *                 name_list = ExprNodes.ListNode(pos, args = [
 *                         ExprNodes.IdentifierStringNode(pos, value = EncodedString("*"))])             # <<<<<<<<<<<<<<
 *             else:
 *                 name_list = None
 */
  __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_u__6); if (unlikely(!__pyx_tuple__63)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);

  /* "Cython/Compiler/Parsing.py":1323
 *             s.next()
 *         if s.sy == 'cimport':
 *             s.error("Relative cimport is not supported yet")             # <<<<<<<<<<<<<<
 *     else:
 *         level = None
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_u_Relative_cimport_is_not_supporte); if (unlikely(!__pyx_tuple__64)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "Cython/Compiler/Parsing.py":1331
 *     elif level is not None and s.sy == 'cimport':
 *         # "from .. cimport"
 *         s.error("Relative cimport is not supported yet")             # <<<<<<<<<<<<<<
 *     else:
 *         (dotted_name_pos, _, dotted_name, _) = \
 */
  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_u_Relative_cimport_is_not_supporte); if (unlikely(!__pyx_tuple__65)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);

  /* "Cython/Compiler/Parsing.py":1339
 *         s.next()
 *     else:
 *         s.error("Expected 'import' or 'cimport'")             # <<<<<<<<<<<<<<
 * 
 *     is_cimport = kind == 'cimport'
 */
  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_u_Expected_import_or_cimport); if (unlikely(!__pyx_tuple__66)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);

  /* "Cython/Compiler/Parsing.py":1361
 *     if dotted_name == '__future__':
 *         if not first_statement:
 *             s.error("from __future__ imports must occur at the beginning of the file")             # <<<<<<<<<<<<<<
 *         elif level is not None:
 *             s.error("invalid syntax")
 */
  __pyx_tuple__67 = PyTuple_Pack(1, __pyx_kp_u_from___future___imports_must_occ); if (unlikely(!__pyx_tuple__67)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);

  /* "Cython/Compiler/Parsing.py":1363
 *             s.error("from __future__ imports must occur at the beginning of the file")
 *         elif level is not None:
 *             s.error("invalid syntax")             # <<<<<<<<<<<<<<
 *         else:
 *             for (name_pos, name, as_name, kind) in imported_names:
 */
  __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_u_invalid_syntax); if (unlikely(!__pyx_tuple__68)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);

  /* "Cython/Compiler/Parsing.py":1543
 *         return op
 *     else:
 *         s.error("Expected one of '<', '<=', '>' '>='")             # <<<<<<<<<<<<<<
 * 
 * def p_for_from_step(s):
 */
  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_u_Expected_one_of); if (unlikely(!__pyx_tuple__69)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);

  /* "Cython/Compiler/Parsing.py":1606
 *             body = body, finally_clause = finally_clause)
 *     else:
 *         s.error("Expected 'except' or 'finally'")             # <<<<<<<<<<<<<<
 * 
 * def p_except_clause(s):
 */
  __pyx_tuple__70 = PyTuple_Pack(1, __pyx_kp_u_Expected_except_or_finally); if (unlikely(!__pyx_tuple__70)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);

  /* "Cython/Compiler/Parsing.py":1832
 *     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__72 = PyTuple_Pack(1, __pyx_kp_u_ctypedef_statement_not_allowed_h); if (unlikely(!__pyx_tuple__72)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);

  /* "Cython/Compiler/Parsing.py":1842
 *     elif s.sy == 'DECORATOR':
 *         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__73 = PyTuple_Pack(1, __pyx_kp_u_decorator_not_allowed_here); if (unlikely(!__pyx_tuple__73)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__73);
  __Pyx_GIVEREF(__pyx_tuple__73);

  /* "Cython/Compiler/Parsing.py":1845
 *         s.level = ctx.level
 *         decorators = p_decorators(s)
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'             # <<<<<<<<<<<<<<
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:
 *             s.error("Decorators can only be followed by functions or classes")
 */
  __pyx_tuple__74 = PyTuple_Pack(4, __pyx_n_u_def, __pyx_n_u_cdef, __pyx_n_u_cpdef, __pyx_n_u_class_2); if (unlikely(!__pyx_tuple__74)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);

  /* "Cython/Compiler/Parsing.py":1847
 *         bad_toks =  'def', 'cdef', 'cpdef', 'class'
 *         if not ctx.allow_struct_enum_decorator and s.sy not in bad_toks:
 *             s.error("Decorators can only be followed by functions or classes")             # <<<<<<<<<<<<<<
 *     elif s.sy == 'pass' and cdef_flag:
 *         # empty cdef block
 */
  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__75)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__75);
  __Pyx_GIVEREF(__pyx_tuple__75);

  /* "Cython/Compiler/Parsing.py":1862
 *     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__76 = PyTuple_Pack(1, __pyx_kp_u_cdef_statement_not_allowed_here); if (unlikely(!__pyx_tuple__76)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);

  /* "Cython/Compiler/Parsing.py":1870
 *                 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__77 = PyTuple_Pack(1, __pyx_kp_u_Decorators_can_only_be_followed); if (unlikely(!__pyx_tuple__77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);

  /* "Cython/Compiler/Parsing.py":1875
 *     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__78 = PyTuple_Pack(1, __pyx_kp_u_api_not_allowed_with_this_state); if (unlikely(!__pyx_tuple__78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__78);
  __Pyx_GIVEREF(__pyx_tuple__78);

  /* "Cython/Compiler/Parsing.py":1880
 *             # 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__79 = PyTuple_Pack(1, __pyx_kp_u_def_statement_not_allowed_here); if (unlikely(!__pyx_tuple__79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);

  /* "Cython/Compiler/Parsing.py":1885
 *         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__80 = PyTuple_Pack(1, __pyx_kp_u_class_definition_not_allowed_her); if (unlikely(!__pyx_tuple__80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__80);
  __Pyx_GIVEREF(__pyx_tuple__80);

  /* "Cython/Compiler/Parsing.py":1889
 *         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__81 = PyTuple_Pack(1, __pyx_kp_u_include_statement_not_allowed_he); if (unlikely(!__pyx_tuple__81)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);

  /* "Cython/Compiler/Parsing.py":1900
 *                 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__82 = PyTuple_Pack(1, __pyx_kp_u_Executable_statement_not_allowed); if (unlikely(!__pyx_tuple__82)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__82);
  __Pyx_GIVEREF(__pyx_tuple__82);

  /* "Cython/Compiler/Parsing.py":1949
 *     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__84 = PyTuple_Pack(1, __pyx_kp_u_api_not_allowed_with_this_state); if (unlikely(!__pyx_tuple__84)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__84);
  __Pyx_GIVEREF(__pyx_tuple__84);

  /* "Cython/Compiler/Parsing.py":1974
 *     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__85 = PyTuple_Pack(1, __pyx_kp_u_Argument_expansion_not_allowed_h); if (unlikely(!__pyx_tuple__85)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);

  /* "Cython/Compiler/Parsing.py":2006
 *             pos_idx += 1
 *             if len(keyword_args) > 0:
 *                 s.error("Non-keyword arg following keyword arg",             # <<<<<<<<<<<<<<
 *                         pos=arg.pos)
 * 
 */
  __pyx_tuple__86 = PyTuple_Pack(1, __pyx_kp_u_Non_keyword_arg_following_keywor); if (unlikely(!__pyx_tuple__86)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__86);
  __Pyx_GIVEREF(__pyx_tuple__86);

  /* "Cython/Compiler/Parsing.py":2102
 *                 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__87 = PyTuple_Pack(2, __pyx_kp_u__29, __pyx_kp_u__29); if (unlikely(!__pyx_tuple__87)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);

  /* "Cython/Compiler/Parsing.py":2104
 *                     s.put_back('(', '(')
 *                 else:
 *                     s.put_back('(', '(')             # <<<<<<<<<<<<<<
 *                     s.put_back('IDENT', name)
 *                     name = None
 */
  __pyx_tuple__88 = PyTuple_Pack(2, __pyx_kp_u__29, __pyx_kp_u__29); if (unlikely(!__pyx_tuple__88)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__88);
  __Pyx_GIVEREF(__pyx_tuple__88);

  /* "Cython/Compiler/Parsing.py":2138
 *     # For templated types, all parameters are types.
 *     positional_args, keyword_args = (
 *         p_positional_and_keyword_args(s, (']',), templates)             # <<<<<<<<<<<<<<
 *     )
 *     s.expect(']')
 */
  __pyx_tuple__89 = PyTuple_Pack(1, __pyx_kp_u__40); if (unlikely(!__pyx_tuple__89)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);

  /* "Cython/Compiler/Parsing.py":2193
 *             retval = True
 * 
 *     for sv in saved[::-1]:             # <<<<<<<<<<<<<<
 *         s.put_back(*sv)
 * 
 */
  __pyx_slice__90 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_slice__90)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__90);
  __Pyx_GIVEREF(__pyx_slice__90);

  /* "Cython/Compiler/Parsing.py":2206
 *     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__91 = PyTuple_Pack(1, __pyx_kp_u_An_axis_specification_in_memoryv); if (unlikely(!__pyx_tuple__91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);

  /* "Cython/Compiler/Parsing.py":2250
 *         for p in dotted_path:
 *             s.put_back('IDENT', p)
 *             s.put_back('.', '.')             # <<<<<<<<<<<<<<
 * 
 *         s.put_back('IDENT', name)
 */
  __pyx_tuple__92 = PyTuple_Pack(2, __pyx_kp_u__33, __pyx_kp_u__33); if (unlikely(!__pyx_tuple__92)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__92);
  __Pyx_GIVEREF(__pyx_tuple__92);

  /* "Cython/Compiler/Parsing.py":2342
 *         s.next()
 *         if s.sy == ')' or looking_at_name(s):
 *             base = Nodes.CNameDeclaratorNode(pos, name = EncodedString(u""), cname = None)             # <<<<<<<<<<<<<<
 *             result = p_c_func_declarator(s, pos, ctx, base, cmethod_flag)
 *         else:
 */
  __pyx_tuple__94 = PyTuple_Pack(1, __pyx_kp_u__48); if (unlikely(!__pyx_tuple__94)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__94);
  __Pyx_GIVEREF(__pyx_tuple__94);

  /* "Cython/Compiler/Parsing.py":2560
 *             s.next()
 *         else:
 *             s.error("Expected 'None'")             # <<<<<<<<<<<<<<
 *         if not in_pyfunc:
 *             error(pos, "'%s None' only allowed in Python functions" % kind)
 */
  __pyx_tuple__100 = PyTuple_Pack(1, __pyx_kp_u_Expected_None); if (unlikely(!__pyx_tuple__100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__100);
  __Pyx_GIVEREF(__pyx_tuple__100);

  /* "Cython/Compiler/Parsing.py":2573
 *             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__101 = PyTuple_Pack(1, __pyx_int_1); if (unlikely(!__pyx_tuple__101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);

  /* "Cython/Compiler/Parsing.py":2818
 *     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__102 = PyTuple_Pack(1, __pyx_kp_u_C_function_definition_not_allowe); if (unlikely(!__pyx_tuple__102)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__102);
  __Pyx_GIVEREF(__pyx_tuple__102);

  /* "Cython/Compiler/Parsing.py":2891
 *         s.next()
 *         decstring = p_dotted_name(s, as_allowed=0)[2]
 *         names = decstring.split('.')             # <<<<<<<<<<<<<<
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))
 *         for name in names[1:]:
 */
  __pyx_tuple__103 = PyTuple_Pack(1, __pyx_kp_u__33); if (unlikely(!__pyx_tuple__103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__103);
  __Pyx_GIVEREF(__pyx_tuple__103);

  /* "Cython/Compiler/Parsing.py":2893
 *         names = decstring.split('.')
 *         decorator = ExprNodes.NameNode(pos, name=EncodedString(names[0]))
 *         for name in names[1:]:             # <<<<<<<<<<<<<<
 *             decorator = ExprNodes.AttributeNode(pos,
 *                                            attribute=EncodedString(name),
 */
  __pyx_slice__104 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__104)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_slice__104);
  __Pyx_GIVEREF(__pyx_slice__104);

  /* "Cython/Compiler/Parsing.py":2937
 *                 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__106 = PyTuple_Pack(1, __pyx_kp_u_Syntax_error_in_Python_function); if (unlikely(!__pyx_tuple__106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);

  /* "Cython/Compiler/Parsing.py":3005
 *             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__107 = PyTuple_Pack(1, __pyx_kp_u_C_class_may_only_have_one_base_c); if (unlikely(!__pyx_tuple__107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__107);
  __Pyx_GIVEREF(__pyx_tuple__107);

  /* "Cython/Compiler/Parsing.py":3162
 *         m = _match_compiler_directive_comment(s.systring)
 *         if m:
 *             directives = m.group(1).strip()             # <<<<<<<<<<<<<<
 *             try:
 *                 result.update(Options.parse_directive_list(
 */
  __pyx_tuple__109 = PyTuple_Pack(1, __pyx_int_1); if (unlikely(!__pyx_tuple__109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__109);
  __Pyx_GIVEREF(__pyx_tuple__109);

  /* "Cython/Compiler/Parsing.py":3289
 *             return
 *         elif t is list:
 *             f.write("[\n")             # <<<<<<<<<<<<<<
 *             for i in xrange(len(node)):
 *                 print_parse_tree(f, node[i], level+1)
 */
  __pyx_tuple__113 = PyTuple_Pack(1, __pyx_kp_u__112); if (unlikely(!__pyx_tuple__113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);

  /* "Cython/Compiler/Parsing.py":43
 *     allow_struct_enum_decorator = False
 * 
 *     def __init__(self, **kwds):             # <<<<<<<<<<<<<<
 *         self.__dict__.update(kwds)
 * 
 */
  __pyx_tuple__114 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_kwds); if (unlikely(!__pyx_tuple__114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__114);
  __Pyx_GIVEREF(__pyx_tuple__114);
  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_robertwb_sage_cython_cyth, __pyx_n_s_init, 43, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":46
 *         self.__dict__.update(kwds)
 * 
 *     def __call__(self, **kwds):             # <<<<<<<<<<<<<<
 *         ctx = Ctx()
 *         d = ctx.__dict__
 */
  __pyx_tuple__116 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_kwds, __pyx_n_s_ctx, __pyx_n_s_d); if (unlikely(!__pyx_tuple__116)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);
  __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__116, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_robertwb_sage_cython_cyth, __pyx_n_s_call, 46, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2287
 * special_basic_c_types = cython.declare(dict, {
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_UCS4"    : (0, 0),
 *     "Py_ssize_t" : (2, 0),
 */
  __pyx_tuple__121 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__121)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);

  /* "Cython/Compiler/Parsing.py":2288
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 */
  __pyx_tuple__122 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__122)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__122);
  __Pyx_GIVEREF(__pyx_tuple__122);

  /* "Cython/Compiler/Parsing.py":2289
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),
 *     "Py_ssize_t" : (2, 0),             # <<<<<<<<<<<<<<
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 */
  __pyx_tuple__123 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__123)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);

  /* "Cython/Compiler/Parsing.py":2290
 *     "Py_UCS4"    : (0, 0),
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),             # <<<<<<<<<<<<<<
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),
 */
  __pyx_tuple__124 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__124)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__124);
  __Pyx_GIVEREF(__pyx_tuple__124);

  /* "Cython/Compiler/Parsing.py":2291
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),             # <<<<<<<<<<<<<<
 *     "ptrdiff_t"  : (2, 0),
 * })
 */
  __pyx_tuple__125 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__125)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__125);
  __Pyx_GIVEREF(__pyx_tuple__125);

  /* "Cython/Compiler/Parsing.py":2292
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),             # <<<<<<<<<<<<<<
 * })
 * 
 */
  __pyx_tuple__126 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_0); if (unlikely(!__pyx_tuple__126)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__126);
  __Pyx_GIVEREF(__pyx_tuple__126);

  /* "Cython/Compiler/Parsing.py":3154
 *     return body
 * 
 * _match_compiler_directive_comment = cython.declare(object, re.compile(             # <<<<<<<<<<<<<<
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)
 * 
 */
  __pyx_tuple__130 = PyTuple_Pack(1, __pyx_kp_u_s_cython_s_s_w_s); if (unlikely(!__pyx_tuple__130)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__130);
  __Pyx_GIVEREF(__pyx_tuple__130);
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_1114111 = PyInt_FromLong(1114111L); if (unlikely(!__pyx_int_1114111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #ifdef __Pyx_CyFunction_USED
  if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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(__Pyx_NAMESTR("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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #if CYTHON_COMPILING_IN_PYPY
  Py_INCREF(__pyx_b);
  #endif
  if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  /*--- Initialize various global constants etc. ---*/
  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  if (__pyx_module_is_main_Cython__Compiler__Parsing) {
    if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!PyDict_GetItemString(modules, "Cython.Compiler.Parsing")) {
      if (unlikely(PyDict_SetItemString(modules, "Cython.Compiler.Parsing", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Constants init code ---*/
  if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_BytesLiteral = 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_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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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 *, PyObject *, PyObject *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__Pyx_ExportFunction("make_slice_nodes", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes, "PyObject *(PyObject *, PyObject *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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 *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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 *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__Pyx_ExportFunction("_extract_docstring", (void (*)(void))__pyx_f_6Cython_8Compiler_7Parsing__extract_docstring, "PyObject *(PyObject *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[3]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[3]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[3]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[3]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[3]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Variable import code ---*/
  /*--- Function import code ---*/
  /*--- Execution code ---*/

  /* "Cython/Compiler/Parsing.py":15
 *                re=object, _unicode=object, _bytes=object)
 * 
 * import re             # <<<<<<<<<<<<<<
 * from unicodedata import lookup as lookup_unicodechar
 * 
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_re, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_re);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_re, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":16
 * 
 * import re
 * from unicodedata import lookup as lookup_unicodechar             # <<<<<<<<<<<<<<
 * 
 * from Cython.Compiler.Scanning import PyrexScanner, FileSourceDescriptor
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_lookup);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_lookup);
  __Pyx_GIVEREF(__pyx_n_s_lookup);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_unicodedata, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_lookup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_lookup_unicodechar, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":18
 * from unicodedata import lookup as lookup_unicodechar
 * 
 * from Cython.Compiler.Scanning import PyrexScanner, FileSourceDescriptor             # <<<<<<<<<<<<<<
 * import Nodes
 * import ExprNodes
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_PyrexScanner);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PyrexScanner);
  __Pyx_GIVEREF(__pyx_n_s_PyrexScanner);
  __Pyx_INCREF(__pyx_n_s_FileSourceDescriptor);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_FileSourceDescriptor);
  __Pyx_GIVEREF(__pyx_n_s_FileSourceDescriptor);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Cython_Compiler_Scanning, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_FileSourceDescriptor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_FileSourceDescriptor, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":19
 * 
 * from Cython.Compiler.Scanning import PyrexScanner, FileSourceDescriptor
 * import Nodes             # <<<<<<<<<<<<<<
 * import ExprNodes
 * import Builtin
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Nodes, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Nodes);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Nodes, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":20
 * from Cython.Compiler.Scanning import PyrexScanner, FileSourceDescriptor
 * import Nodes
 * import ExprNodes             # <<<<<<<<<<<<<<
 * import Builtin
 * import StringEncoding
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_ExprNodes, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_ExprNodes, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":21
 * import Nodes
 * import ExprNodes
 * import Builtin             # <<<<<<<<<<<<<<
 * import StringEncoding
 * from StringEncoding import EncodedString, BytesLiteral, _unicode, _bytes
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Builtin, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Builtin);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Builtin, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":22
 * import ExprNodes
 * import Builtin
 * import StringEncoding             # <<<<<<<<<<<<<<
 * from StringEncoding import EncodedString, BytesLiteral, _unicode, _bytes
 * from ModuleNode import ModuleNode
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_StringEncoding, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_StringEncoding, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":23
 * import Builtin
 * import StringEncoding
 * from StringEncoding import EncodedString, BytesLiteral, _unicode, _bytes             # <<<<<<<<<<<<<<
 * from ModuleNode import ModuleNode
 * from Errors import error, warning
 */
  __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_EncodedString);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_EncodedString);
  __Pyx_GIVEREF(__pyx_n_s_EncodedString);
  __Pyx_INCREF(__pyx_n_s_BytesLiteral);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_BytesLiteral);
  __Pyx_GIVEREF(__pyx_n_s_BytesLiteral);
  __Pyx_INCREF(__pyx_n_s_unicode);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_unicode);
  __Pyx_GIVEREF(__pyx_n_s_unicode);
  __Pyx_INCREF(__pyx_n_s_bytes);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_bytes);
  __Pyx_GIVEREF(__pyx_n_s_bytes);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_StringEncoding, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_EncodedString); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_EncodedString, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_BytesLiteral); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_BytesLiteral);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_BytesLiteral, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_unicode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing__unicode);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing__unicode, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_bytes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing__bytes);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing__bytes, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":24
 * import StringEncoding
 * from StringEncoding import EncodedString, BytesLiteral, _unicode, _bytes
 * from ModuleNode import ModuleNode             # <<<<<<<<<<<<<<
 * from Errors import error, warning
 * from Cython import Utils
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_ModuleNode);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ModuleNode);
  __Pyx_GIVEREF(__pyx_n_s_ModuleNode);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_ModuleNode, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_ModuleNode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_ModuleNode, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":25
 * from StringEncoding import EncodedString, BytesLiteral, _unicode, _bytes
 * from ModuleNode import ModuleNode
 * from Errors import error, warning             # <<<<<<<<<<<<<<
 * from Cython import Utils
 * import Future
 */
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_error);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_error);
  __Pyx_GIVEREF(__pyx_n_s_error);
  __Pyx_INCREF(__pyx_n_s_warning);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_warning);
  __Pyx_GIVEREF(__pyx_n_s_warning);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_Errors, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_error);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_error, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warning); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_warning);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_warning, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":26
 * from ModuleNode import ModuleNode
 * from Errors import error, warning
 * from Cython import Utils             # <<<<<<<<<<<<<<
 * import Future
 * import Options
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Utils);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Utils);
  __Pyx_GIVEREF(__pyx_n_s_Utils);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Cython, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Utils); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Utils);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Utils, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":27
 * from Errors import error, warning
 * from Cython import Utils
 * import Future             # <<<<<<<<<<<<<<
 * import Options
 * 
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Future, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Future);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Future, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":28
 * from Cython import Utils
 * import Future
 * import Options             # <<<<<<<<<<<<<<
 * 
 * class Ctx(object):
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_Options, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Parsing_Options);
  __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Parsing_Options, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":30
 * import Options
 * 
 * class Ctx(object):             # <<<<<<<<<<<<<<
 *     #  Parsing context
 *     level = 'other'
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_Ctx, __pyx_n_s_Ctx, (PyObject *) NULL, __pyx_n_s_Cython_Compiler_Parsing, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "Cython/Compiler/Parsing.py":32
 * class Ctx(object):
 *     #  Parsing context
 *     level = 'other'             # <<<<<<<<<<<<<<
 *     visibility = 'private'
 *     cdef_flag = 0
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_level, __pyx_n_u_other) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":33
 *     #  Parsing context
 *     level = 'other'
 *     visibility = 'private'             # <<<<<<<<<<<<<<
 *     cdef_flag = 0
 *     typedef_flag = 0
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_visibility, __pyx_n_u_private) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":34
 *     level = 'other'
 *     visibility = 'private'
 *     cdef_flag = 0             # <<<<<<<<<<<<<<
 *     typedef_flag = 0
 *     api = 0
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_cdef_flag, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":35
 *     visibility = 'private'
 *     cdef_flag = 0
 *     typedef_flag = 0             # <<<<<<<<<<<<<<
 *     api = 0
 *     overridable = 0
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_typedef_flag, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":36
 *     cdef_flag = 0
 *     typedef_flag = 0
 *     api = 0             # <<<<<<<<<<<<<<
 *     overridable = 0
 *     nogil = 0
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_api, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":37
 *     typedef_flag = 0
 *     api = 0
 *     overridable = 0             # <<<<<<<<<<<<<<
 *     nogil = 0
 *     namespace = None
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_overridable, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":38
 *     api = 0
 *     overridable = 0
 *     nogil = 0             # <<<<<<<<<<<<<<
 *     namespace = None
 *     templates = None
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_nogil, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":39
 *     overridable = 0
 *     nogil = 0
 *     namespace = None             # <<<<<<<<<<<<<<
 *     templates = None
 *     allow_struct_enum_decorator = False
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_namespace, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":40
 *     nogil = 0
 *     namespace = None
 *     templates = None             # <<<<<<<<<<<<<<
 *     allow_struct_enum_decorator = False
 * 
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_templates, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":41
 *     namespace = None
 *     templates = None
 *     allow_struct_enum_decorator = False             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, **kwds):
 */
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_allow_struct_enum_decorator, Py_False) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":43
 *     allow_struct_enum_decorator = False
 * 
 *     def __init__(self, **kwds):             # <<<<<<<<<<<<<<
 *         self.__dict__.update(kwds)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_3Ctx_1__init__, 0, __pyx_n_s_Ctx___init, NULL, __pyx_n_s_Cython_Compiler_Parsing, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_init, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":46
 *         self.__dict__.update(kwds)
 * 
 *     def __call__(self, **kwds):             # <<<<<<<<<<<<<<
 *         ctx = Ctx()
 *         d = ctx.__dict__
 */
  __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6Cython_8Compiler_7Parsing_3Ctx_3__call__, 0, __pyx_n_s_Ctx___call, NULL, __pyx_n_s_Cython_Compiler_Parsing, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_call, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "Cython/Compiler/Parsing.py":30
 * import Options
 * 
 * class Ctx(object):             # <<<<<<<<<<<<<<
 *     #  Parsing context
 *     level = 'other'
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_Ctx, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ctx, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __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(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":240
 *     return op
 * 
 * comparison_ops = cython.declare(set, set([             # <<<<<<<<<<<<<<
 *     '<', '>', '==', '>=', '<=', '<>', '!=',
 *     'in', 'is', 'not'
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__25) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__28) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__118) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__119) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__120) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_in) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_is) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_not) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1094
 *     return ExprNodes.GeneratorExpressionNode(expr.pos, loop=loop)
 * 
 * expr_terminators = cython.declare(set, set([             # <<<<<<<<<<<<<<
 *     ')', ']', '}', ':', '=', 'NEWLINE']))
 * 
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__30) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__40) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__58) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__36) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_NEWLINE) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1401
 *             items = items)
 * 
 * imported_name_kinds = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(['class', 'struct', 'union']))
 * 
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PySet_Add(__pyx_t_1, __pyx_n_u_class_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_struct) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_union) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1445
 *     return Nodes.AssertStatNode(pos, cond = cond, value = value)
 * 
 * statement_terminators = cython.declare(set, set([';', 'NEWLINE', 'EOF']))             # <<<<<<<<<<<<<<
 * 
 * def p_if_statement(s):
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__71) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_NEWLINE) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_EOF) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__; goto __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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1553
 *         return None
 * 
 * inequality_relations = cython.declare(set, set(['<', '<=', '>', '>=']))             # <<<<<<<<<<<<<<
 * 
 * def p_target(s, terminator):
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__25) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__120) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__28) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_kp_u__119) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1933
 * 
 * 
 * def p_suite(s, ctx=Ctx()):             # <<<<<<<<<<<<<<
 *     return p_suite_with_docstring(s, ctx, with_doc_only=False)[1]
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_k__83 = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2033
 *         return ""
 * 
 * calling_convention_words = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["__stdcall", "__cdecl", "__fastcall"]))
 * 
 */
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PySet_Add(__pyx_t_2, __pyx_n_u_stdcall) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_cdecl) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_fastcall) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2034; __pyx_clineno = __LINE__; goto __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_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2282
 *     return result
 * 
 * basic_c_type_names = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["void", "char", "int", "float", "double", "bint"]))
 * 
 */
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PySet_Add(__pyx_t_2, __pyx_n_u_void) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_char) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_int) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_float) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_double) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_bint) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__; goto __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_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2285
 *     set, set(["void", "char", "int", "float", "double", "bint"]))
 * 
 * special_basic_c_types = cython.declare(dict, {             # <<<<<<<<<<<<<<
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),
 */
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "Cython/Compiler/Parsing.py":2287
 * special_basic_c_types = cython.declare(dict, {
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_UCS4"    : (0, 0),
 *     "Py_ssize_t" : (2, 0),
 */
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_Py_UNICODE, __pyx_tuple__121) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2288
 *     # name : (signed, longness)
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),             # <<<<<<<<<<<<<<
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 */
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_Py_UCS4, __pyx_tuple__122) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2289
 *     "Py_UNICODE" : (0, 0),
 *     "Py_UCS4"    : (0, 0),
 *     "Py_ssize_t" : (2, 0),             # <<<<<<<<<<<<<<
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 */
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_Py_ssize_t, __pyx_tuple__123) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2290
 *     "Py_UCS4"    : (0, 0),
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),             # <<<<<<<<<<<<<<
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),
 */
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_ssize_t, __pyx_tuple__124) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2291
 *     "Py_ssize_t" : (2, 0),
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),             # <<<<<<<<<<<<<<
 *     "ptrdiff_t"  : (2, 0),
 * })
 */
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_size_t, __pyx_tuple__125) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "Cython/Compiler/Parsing.py":2292
 *     "ssize_t"    : (2, 0),
 *     "size_t"     : (0, 0),
 *     "ptrdiff_t"  : (2, 0),             # <<<<<<<<<<<<<<
 * })
 * 
 */
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_ptrdiff_t, __pyx_tuple__126) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __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_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2295
 * })
 * 
 * sign_and_longness_words = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["short", "long", "signed", "unsigned"]))
 * 
 */
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PySet_Add(__pyx_t_2, __pyx_n_u_short) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_long) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_signed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_2, __pyx_n_u_unsigned) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __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_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "Cython/Compiler/Parsing.py":2301
 *     set,
 *     basic_c_type_names
 *     | sign_and_longness_words             # <<<<<<<<<<<<<<
 *     | set(special_basic_c_types))
 * 
 */
  __pyx_t_2 = PyNumber_Or(__pyx_v_6Cython_8Compiler_7Parsing_basic_c_type_names, __pyx_v_6Cython_8Compiler_7Parsing_sign_and_longness_words); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "Cython/Compiler/Parsing.py":2302
 *     basic_c_type_names
 *     | sign_and_longness_words
 *     | set(special_basic_c_types))             # <<<<<<<<<<<<<<
 * 
 * struct_enum_union = cython.declare(
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types);
  __Pyx_GIVEREF(__pyx_v_6Cython_8Compiler_7Parsing_special_basic_c_types);
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PySet_Type))), __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Or(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2302; __pyx_clineno = __LINE__; goto __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_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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2304
 *     | set(special_basic_c_types))
 * 
 * struct_enum_union = cython.declare(             # <<<<<<<<<<<<<<
 *     set, set(["struct", "union", "enum", "packed"]))
 * 
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PySet_Add(__pyx_t_1, __pyx_n_u_struct) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_union) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_enum) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_1, __pyx_n_u_packed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __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_1));
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":2331
 *     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_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_k__93 = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2390
 *         nogil = nogil or ctx.nogil or with_gil, with_gil = with_gil)
 * 
 * supported_overloaded_operators = cython.declare(set, set([             # <<<<<<<<<<<<<<
 *     '+', '-', '*', '/', '%',
 *     '++', '--', '~', '|', '&', '^', '<<', '>>', ',',
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__18) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__19) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__21) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__127) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__128) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__24) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u_) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__118) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__119) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__28) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__120) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__25) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__98) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__97) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__129) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __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_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2513
 *     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_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__34) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__33) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PySet_Add(__pyx_t_3, __pyx_kp_u__30) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __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_3));
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "Cython/Compiler/Parsing.py":2515
 * 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_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_k__99 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3147
 * 
 * 
 * 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_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k__108 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3154
 *     return body
 * 
 * _match_compiler_directive_comment = cython.declare(object, re.compile(             # <<<<<<<<<<<<<<
 *     r"^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$").match)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6Cython_8Compiler_7Parsing_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__130, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3155
 * 
 * _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_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":3171
 *     return result
 * 
 * def p_module(s, pxd, full_module_name, ctx=Ctx):             # <<<<<<<<<<<<<<
 *     pos = s.position()
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k__110 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "Cython/Compiler/Parsing.py":1
 * # cython: auto_cpdef=True, infer_types=True, language_level=3, py2_import=True             # <<<<<<<<<<<<<<
 * #
 * #   Parser
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test_2, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  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);
  if (__pyx_m) {
    __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 */
#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 /* CYTHON_REFNANNY */

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;
}

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
}

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;
}

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);
}

#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 PY_VERSION_HEX >= 0x02060000
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
#endif
    result = (*call)(func, arg, kw);
#if PY_VERSION_HEX >= 0x02060000
    Py_LeaveRecursiveCall();
#endif
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
    PyObject *result;
#if CYTHON_COMPILING_IN_CPYTHON
    result = PyDict_GetItem(__pyx_d, name);
    if (result) {
        Py_INCREF(result);
    } else {
#else
    result = PyObject_GetItem(__pyx_d, name);
    if (!result) {
        PyErr_Clear();
#endif
        result = __Pyx_GetBuiltinName(name);
    }
    return result;
}

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
}

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 CYTHON_PEP393_ENABLED
        if (unlikely(PyUnicode_READY(s1) < 0) || unlikely(PyUnicode_READY(s2) < 0))
            return -1;
        #endif
        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, 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
}

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);
}

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");
}

static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_COMPILING_IN_CPYTHON
    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
}

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;
}

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,
                                                              int wraparound, int boundscheck) {
#if CYTHON_COMPILING_IN_CPYTHON
    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,
                                                              int wraparound, int boundscheck) {
#if CYTHON_COMPILING_IN_CPYTHON
    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, int wraparound, int boundscheck) {
#if CYTHON_COMPILING_IN_CPYTHON
    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))
                        PyErr_Clear();
                    else
                        return NULL;
                }
            }
            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));
}

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_COMPILING_IN_CPYTHON
    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))
                    PyErr_Clear();
                else
                    goto bad;
            }
        }
        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_COMPILING_IN_CPYTHON
        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;
}

static CYTHON_INLINE Py_UCS4 __Pyx_GetItemInt_Unicode_Fast(PyObject* ustring, Py_ssize_t i,
                                                           int wraparound, int boundscheck) {
    Py_ssize_t length;
#if CYTHON_PEP393_ENABLED
    if (unlikely(__Pyx_PyUnicode_READY(ustring) < 0)) return (Py_UCS4)-1;
#endif
    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);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
            PyObject* text, Py_ssize_t start, Py_ssize_t stop) {
    Py_ssize_t length;
#if CYTHON_PEP393_ENABLED
    if (unlikely(PyUnicode_READY(text) == -1)) return NULL;
    length = PyUnicode_GET_LENGTH(text);
#else
    length = PyUnicode_GET_SIZE(text);
#endif
    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
}

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;
}

static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    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);
#else
    PyErr_Restore(type, value, tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(type, value, tb);
#endif
}

static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __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);
    }
}

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;
}

static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
#else
    PyErr_GetExcInfo(type, value, tb);
#endif
}
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    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);
#else
    PyErr_SetExcInfo(type, value, tb);
#endif
}

static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    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_COMPILING_IN_CPYTHON
    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_COMPILING_IN_CPYTHON
    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;
}

#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

static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

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);
}

static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    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;
#else
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
#endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}

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;
}

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, int wraparound) {
#if CYTHON_COMPILING_IN_PYPY
    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))
                    PyErr_Clear();
                else
                    return -1;
            }
        }
        return m->sq_ass_item(o, i, (PyObject *)NULL);
    }
#endif
    return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
}

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;
}

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);
    }
}

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;
}

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, Py_ssize_t orig_length, 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;
}

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 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
    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;
}

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;
}

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;
}

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; /* Mark as deleted */
    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) {
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    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);
    Py_DECREF(res);
    return 0;
}
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}
};
#ifndef PY_WRITE_RESTRICTED /* < Py2.5 */
#define PY_WRITE_RESTRICTED WRITE_RESTRICTED
#endif
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[] = {
    {__Pyx_NAMESTR("__reduce__"), (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
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;
    op->func_weakreflist = 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]);
        PyMem_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    if (m->func_weakreflist != 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 PyMethod_New(func,
                            type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
    return 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
}
#if CYTHON_COMPILING_IN_PYPY
static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    Py_ssize_t size;
    switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)) {
    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 (size == 0)
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%zd 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 (size == 1)
                return (*meth)(self, PyTuple_GET_ITEM(arg, 0));
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%zd 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;
}
#else
static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
	return PyCFunction_Call(func, arg, kw);
}
#endif
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __Pyx_NAMESTR("cython_function_or_method"), /*tp_name*/
    sizeof(__pyx_CyFunctionObject),   /*tp_basicsize*/
    0,                                  /*tp_itemsize*/
    (destructor) __Pyx_CyFunction_dealloc, /*tp_dealloc*/
    0,                                  /*tp_print*/
    0,                                  /*tp_getattr*/
    0,                                  /*tp_setattr*/
#if PY_MAJOR_VERSION < 3
    0,                                  /*tp_compare*/
#else
    0,                                  /*reserved*/
#endif
    (reprfunc) __Pyx_CyFunction_repr,   /*tp_repr*/
    0,                                  /*tp_as_number*/
    0,                                  /*tp_as_sequence*/
    0,                                  /*tp_as_mapping*/
    0,                                  /*tp_hash*/
    __Pyx_CyFunction_Call,              /*tp_call*/
    0,                                  /*tp_str*/
    0,                                  /*tp_getattro*/
    0,                                  /*tp_setattro*/
    0,                                  /*tp_as_buffer*/
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags*/
    0,                                  /*tp_doc*/
    (traverseproc) __Pyx_CyFunction_traverse,   /*tp_traverse*/
    (inquiry) __Pyx_CyFunction_clear,   /*tp_clear*/
    0,                                  /*tp_richcompare*/
    offsetof(__pyx_CyFunctionObject, func_weakreflist), /* tp_weaklistoffse */
    0,                                  /*tp_iter*/
    0,                                  /*tp_iternext*/
    __pyx_CyFunction_methods,           /*tp_methods*/
    __pyx_CyFunction_members,           /*tp_members*/
    __pyx_CyFunction_getsets,           /*tp_getset*/
    0,                                  /*tp_base*/
    0,                                  /*tp_dict*/
    __Pyx_CyFunction_descr_get,         /*tp_descr_get*/
    0,                                  /*tp_descr_set*/
    offsetof(__pyx_CyFunctionObject, func_dict),/*tp_dictoffset*/
    0,                                  /*tp_init*/
    0,                                  /*tp_alloc*/
    0,                                  /*tp_new*/
    0,                                  /*tp_free*/
    0,                                  /*tp_is_gc*/
    0,                                  /*tp_bases*/
    0,                                  /*tp_mro*/
    0,                                  /*tp_cache*/
    0,                                  /*tp_subclasses*/
    0,                                  /*tp_weaklist*/
    0,                                  /*tp_del*/
#if PY_VERSION_HEX >= 0x02060000
    0,                                  /*tp_version_tag*/
#endif
#if PY_VERSION_HEX >= 0x030400a1
    0,                                  /*tp_finalize*/
#endif
};
static int __Pyx_CyFunction_init(void) {
#if !CYTHON_COMPILING_IN_PYPY
    __pyx_CyFunctionType_type.tp_call = PyCFunction_Call;
#endif
    __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 = PyMem_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);
}

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;
}

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_VERSION_HEX >= 0x02050000
    {
        #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; /* try absolute import on failure */
        }
        #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
        }
    }
    #else
    if (level>0) {
        PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
        goto bad;
    }
    module = PyObject_CallFunctionObjArgs(py_import,
        name, global_dict, empty_dict, list, NULL);
    #endif
bad:
    #if PY_VERSION_HEX < 0x03030000
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
    const long neg_one = (long) -1, const_zero = 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);
        } else if (sizeof(long) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

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;
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
    const int neg_one = (int) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(int) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func)             \
    {                                                                     \
        func_type value = func(x);                                        \
        if (sizeof(target_type) < sizeof(func_type)) {                    \
            if (unlikely(value != (func_type) (target_type) value)) {     \
                func_type zero = 0;                                       \
                PyErr_SetString(PyExc_OverflowError,                      \
                    (is_unsigned && unlikely(value < zero)) ?             \
                    "can't convert negative value to " #target_type :     \
                    "value too large to convert to " #target_type);       \
                return (target_type) -1;                                  \
            }                                                             \
        }                                                                 \
        return (target_type) value;                                       \
    }

#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
 #endif
#endif
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
    const int neg_one = (int) -1, const_zero = 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)
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to int");
                return (int) -1;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            if (sizeof(digit) <= sizeof(int)) {
                switch (Py_SIZE(x)) {
                    case  0: return 0;
                    case  1: return (int) ((PyLongObject*)x)->ob_digit[0];
                }
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to int");
                return (int) -1;
            }
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(int, unsigned long, PyLong_AsUnsignedLong)
            } else if (sizeof(int) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(int, unsigned long long, PyLong_AsUnsignedLongLong)
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            if (sizeof(digit) <= sizeof(int)) {
                switch (Py_SIZE(x)) {
                    case  0: return 0;
                    case  1: return +(int) ((PyLongObject*)x)->ob_digit[0];
                    case -1: return -(int) ((PyLongObject*)x)->ob_digit[0];
                }
            }
 #endif
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(int, long, PyLong_AsLong)
            } else if (sizeof(int) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(int, long long, PyLong_AsLongLong)
            }
        }
        {
#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_Int(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_Int(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
 #endif
#endif
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
    const long neg_one = (long) -1, const_zero = 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)
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to long");
                return (long) -1;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            if (sizeof(digit) <= sizeof(long)) {
                switch (Py_SIZE(x)) {
                    case  0: return 0;
                    case  1: return (long) ((PyLongObject*)x)->ob_digit[0];
                }
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to long");
                return (long) -1;
            }
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(long, unsigned long, PyLong_AsUnsignedLong)
            } else if (sizeof(long) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(long, unsigned long long, PyLong_AsUnsignedLongLong)
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            if (sizeof(digit) <= sizeof(long)) {
                switch (Py_SIZE(x)) {
                    case  0: return 0;
                    case  1: return +(long) ((PyLongObject*)x)->ob_digit[0];
                    case -1: return -(long) ((PyLongObject*)x)->ob_digit[0];
                }
            }
 #endif
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(long, long, PyLong_AsLong)
            } else if (sizeof(long) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(long, long long, PyLong_AsLongLong)
            }
        }
        {
#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_Int(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_Int(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

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);
        #if PY_VERSION_HEX < 0x02050000
        return PyErr_Warn(NULL, message);
        #else
        return PyErr_WarnEx(NULL, message, 1);
        #endif
    }
    return 0;
}

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 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
    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;
}

#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

#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",
            module_name, class_name);
        #if PY_VERSION_HEX < 0x02050000
        if (PyErr_Warn(NULL, warning) < 0) goto bad;
        #else
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
        #endif
    }
    else if ((size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s has the wrong size, try recompiling",
            module_name, class_name);
        goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(py_module);
    Py_XDECREF(result);
    return NULL;
}
#endif

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) / 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, 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);
}

#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,            /*int argcount,*/
        0,            /*int kwonlyargcount,*/
        0,            /*int nlocals,*/
        0,            /*int stacksize,*/
        0,            /*int flags,*/
        __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,      /*int firstlineno,*/
        __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;
    PyObject *py_globals = 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_globals = PyModule_GetDict(__pyx_m);
    if (!py_globals) goto bad;
    py_frame = PyFrame_New(
        PyThreadState_GET(), /*PyThreadState *tstate,*/
        py_code,             /*PyCodeObject *code,*/
        py_globals,          /*PyObject *globals,*/
        0                    /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    py_frame->f_lineno = py_line;
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

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  /* Python 3+ has unicode identifiers */
        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(char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, 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 __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 /*__PYX_DEFAULT_STRING_ENCODING_IS_ASCII*/
        *length = PyBytes_GET_SIZE(defenc);
        return defenc_c;
#else /* PY_VERSION_HEX < 0x03030000 */
        if (PyUnicode_READY(o) == -1) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        if (PyUnicode_IS_ASCII(o)) {
            *length = PyUnicode_GET_DATA_SIZE(o);
            return PyUnicode_AsUTF8(o);
        } else {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
#else /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
        return PyUnicode_AsUTF8AndSize(o, length);
#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
#endif /* PY_VERSION_HEX < 0x03030000 */
    } else
#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII  || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT */
#if !CYTHON_COMPILING_IN_PYPY
#if PY_VERSION_HEX >= 0x02060000
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
#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_Int(PyObject* x) {
  PyNumberMethods *m;
  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 Py_INCREF(x), x;
  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
  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;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
 #endif
#endif
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)))
      return PyInt_AS_LONG(b);
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
     #if CYTHON_USE_PYLONG_INTERNALS
       switch (Py_SIZE(b)) {
       case -1: return -(sdigit)((PyLongObject*)b)->ob_digit[0];
       case  0: return 0;
       case  1: return ((PyLongObject*)b)->ob_digit[0];
       }
     #endif
    #endif
  #if PY_VERSION_HEX < 0x02060000
    return PyInt_AsSsize_t(b);
  #else
    return PyLong_AsSsize_t(b);
  #endif
  }
  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) {
#if PY_VERSION_HEX < 0x02050000
   if (ival <= LONG_MAX)
       return PyInt_FromLong((long)ival);
   else {
       unsigned char *bytes = (unsigned char *) &ival;
       int one = 1; int little = (int)*(unsigned char*)&one;
       return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
   }
#else
   return PyInt_FromSize_t(ival);
#endif
}


#endif /* Py_PYTHON_H */
