[pypy-commit] pypy release-2.0-beta2: merge default

fijal noreply at buildbot.pypy.org
Thu Apr 4 23:23:01 CEST 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: release-2.0-beta2
Changeset: r63027:84dc290a5609
Date: 2013-04-04 23:22 +0200
http://bitbucket.org/pypy/pypy/changeset/84dc290a5609/

Log:	merge default

diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py
--- a/lib_pypy/_sqlite3.py
+++ b/lib_pypy/_sqlite3.py
@@ -30,6 +30,11 @@
 import sys
 import weakref
 from threading import _get_ident as _thread_get_ident
+try:
+    from __pypy__ import newlist_hint
+except ImportError:
+    assert '__pypy__' not in sys.builtin_module_names
+    newlist_hint = lambda sizehint: []
 
 if sys.version_info[0] >= 3:
     StandardError = Exception
@@ -377,7 +382,7 @@
         self.maxcount = maxcount
         self.cache = OrderedDict()
 
-    def get(self, sql, row_factory):
+    def get(self, sql):
         try:
             stat = self.cache[sql]
         except KeyError:
@@ -385,10 +390,10 @@
             self.cache[sql] = stat
             if len(self.cache) > self.maxcount:
                 self.cache.popitem(0)
-
-        if stat._in_use:
-            stat = Statement(self.connection, sql)
-        stat._row_factory = row_factory
+        else:
+            if stat._in_use:
+                stat = Statement(self.connection, sql)
+                self.cache[sql] = stat
         return stat
 
 
@@ -551,7 +556,7 @@
     @_check_thread_wrap
     @_check_closed_wrap
     def __call__(self, sql):
-        return self._statement_cache.get(sql, self.row_factory)
+        return self._statement_cache.get(sql)
 
     def cursor(self, factory=None):
         self._check_thread()
@@ -855,10 +860,6 @@
 
         self.__initialized = True
 
-    def __del__(self):
-        if self.__statement:
-            self.__statement._reset()
-
     def close(self):
         self.__connection._check_thread()
         self.__connection._check_closed()
@@ -884,16 +885,96 @@
             return func(self, *args, **kwargs)
         return wrapper
 
+    def __check_reset(self):
+        if self._reset:
+            raise InterfaceError(
+                    "Cursor needed to be reset because of commit/rollback "
+                    "and can no longer be fetched from.")
+
+    def __build_row_cast_map(self):
+        if not self.__connection._detect_types:
+            return
+        self.__row_cast_map = []
+        for i in xrange(_lib.sqlite3_column_count(self.__statement._statement)):
+            converter = None
+
+            if self.__connection._detect_types & PARSE_COLNAMES:
+                colname = _lib.sqlite3_column_name(self.__statement._statement, i)
+                if colname:
+                    colname = _ffi.string(colname).decode('utf-8')
+                    type_start = -1
+                    key = None
+                    for pos in range(len(colname)):
+                        if colname[pos] == '[':
+                            type_start = pos + 1
+                        elif colname[pos] == ']' and type_start != -1:
+                            key = colname[type_start:pos]
+                            converter = converters[key.upper()]
+
+            if converter is None and self.__connection._detect_types & PARSE_DECLTYPES:
+                decltype = _lib.sqlite3_column_decltype(self.__statement._statement, i)
+                if decltype:
+                    decltype = _ffi.string(decltype).decode('utf-8')
+                    # if multiple words, use first, eg.
+                    # "INTEGER NOT NULL" => "INTEGER"
+                    decltype = decltype.split()[0]
+                    if '(' in decltype:
+                        decltype = decltype[:decltype.index('(')]
+                    converter = converters.get(decltype.upper(), None)
+
+            self.__row_cast_map.append(converter)
+
+    def __fetch_one_row(self):
+        num_cols = _lib.sqlite3_data_count(self.__statement._statement)
+        row = newlist_hint(num_cols)
+        for i in xrange(num_cols):
+            if self.__connection._detect_types:
+                converter = self.__row_cast_map[i]
+            else:
+                converter = None
+
+            if converter is not None:
+                blob = _lib.sqlite3_column_blob(self.__statement._statement, i)
+                if not blob:
+                    val = None
+                else:
+                    blob_len = _lib.sqlite3_column_bytes(self.__statement._statement, i)
+                    val = _ffi.buffer(blob, blob_len)[:]
+                    val = converter(val)
+            else:
+                typ = _lib.sqlite3_column_type(self.__statement._statement, i)
+                if typ == _lib.SQLITE_NULL:
+                    val = None
+                elif typ == _lib.SQLITE_INTEGER:
+                    val = _lib.sqlite3_column_int64(self.__statement._statement, i)
+                    val = int(val)
+                elif typ == _lib.SQLITE_FLOAT:
+                    val = _lib.sqlite3_column_double(self.__statement._statement, i)
+                elif typ == _lib.SQLITE_TEXT:
+                    text = _lib.sqlite3_column_text(self.__statement._statement, i)
+                    text_len = _lib.sqlite3_column_bytes(self.__statement._statement, i)
+                    val = _ffi.buffer(text, text_len)[:]
+                    val = self.__connection.text_factory(val)
+                elif typ == _lib.SQLITE_BLOB:
+                    blob = _lib.sqlite3_column_blob(self.__statement._statement, i)
+                    blob_len = _lib.sqlite3_column_bytes(self.__statement._statement, i)
+                    val = _BLOB_TYPE(_ffi.buffer(blob, blob_len))
+            row.append(val)
+        return tuple(row)
+
     def __execute(self, multiple, sql, many_params):
         self.__locked = True
+        self._reset = False
         try:
-            self._reset = False
+            del self.__next_row
+        except AttributeError:
+            pass
+        try:
             if not isinstance(sql, basestring):
                 raise ValueError("operation parameter must be str or unicode")
             self.__description = None
             self.__rowcount = -1
-            self.__statement = self.__connection._statement_cache.get(
-                sql, self.row_factory)
+            self.__statement = self.__connection._statement_cache.get(sql)
 
             if self.__connection._isolation_level is not None:
                 if self.__statement._kind == Statement._DDL:
@@ -918,9 +999,9 @@
                 if self.__statement._kind == Statement._DML:
                     self.__statement._reset()
 
-                if self.__statement._kind == Statement._DQL and ret == _lib.SQLITE_ROW:
-                    self.__statement._build_row_cast_map()
-                    self.__statement._readahead(self)
+                if ret == _lib.SQLITE_ROW:
+                    self.__build_row_cast_map()
+                    self.__next_row = self.__fetch_one_row()
 
                 if self.__statement._kind == Statement._DML:
                     if self.__rowcount == -1:
@@ -981,12 +1062,6 @@
                 break
         return self
 
-    def __check_reset(self):
-        if self._reset:
-            raise self.__connection.InterfaceError(
-                    "Cursor needed to be reset because of commit/rollback "
-                    "and can no longer be fetched from.")
-
     def __iter__(self):
         return self
 
@@ -995,7 +1070,25 @@
         self.__check_reset()
         if not self.__statement:
             raise StopIteration
-        return self.__statement._next(self)
+
+        try:
+            next_row = self.__next_row
+        except AttributeError:
+            self.__statement._reset()
+            self.__statement = None
+            raise StopIteration
+        del self.__next_row
+
+        if self.row_factory is not None:
+            next_row = self.row_factory(self, next_row)
+
+        ret = _lib.sqlite3_step(self.__statement._statement)
+        if ret not in (_lib.SQLITE_DONE, _lib.SQLITE_ROW):
+            self.__statement._reset()
+            raise self.__connection._get_exception(ret)
+        elif ret == _lib.SQLITE_ROW:
+            self.__next_row = self.__fetch_one_row()
+        return next_row
 
     if sys.version_info[0] < 3:
         next = __next__
@@ -1052,7 +1145,6 @@
         self.__con._remember_statement(self)
 
         self._in_use = False
-        self._row_factory = None
 
         if not isinstance(sql, basestring):
             raise Warning("SQL is of wrong type. Must be string or unicode.")
@@ -1189,98 +1281,6 @@
         else:
             raise ValueError("parameters are of unsupported type")
 
-    def _build_row_cast_map(self):
-        if not self.__con._detect_types:
-            return
-        self.__row_cast_map = []
-        for i in xrange(_lib.sqlite3_column_count(self._statement)):
-            converter = None
-
-            if self.__con._detect_types & PARSE_COLNAMES:
-                colname = _lib.sqlite3_column_name(self._statement, i)
-                if colname:
-                    colname = _ffi.string(colname).decode('utf-8')
-                    type_start = -1
-                    key = None
-                    for pos in range(len(colname)):
-                        if colname[pos] == '[':
-                            type_start = pos + 1
-                        elif colname[pos] == ']' and type_start != -1:
-                            key = colname[type_start:pos]
-                            converter = converters[key.upper()]
-
-            if converter is None and self.__con._detect_types & PARSE_DECLTYPES:
-                decltype = _lib.sqlite3_column_decltype(self._statement, i)
-                if decltype:
-                    decltype = _ffi.string(decltype).decode('utf-8')
-                    # if multiple words, use first, eg.
-                    # "INTEGER NOT NULL" => "INTEGER"
-                    decltype = decltype.split()[0]
-                    if '(' in decltype:
-                        decltype = decltype[:decltype.index('(')]
-                    converter = converters.get(decltype.upper(), None)
-
-            self.__row_cast_map.append(converter)
-
-    def _readahead(self, cursor):
-        row = []
-        num_cols = _lib.sqlite3_data_count(self._statement)
-        for i in xrange(num_cols):
-            if self.__con._detect_types:
-                converter = self.__row_cast_map[i]
-            else:
-                converter = None
-
-            if converter is not None:
-                blob = _lib.sqlite3_column_blob(self._statement, i)
-                if not blob:
-                    val = None
-                else:
-                    blob_len = _lib.sqlite3_column_bytes(self._statement, i)
-                    val = _ffi.buffer(blob, blob_len)[:]
-                    val = converter(val)
-            else:
-                typ = _lib.sqlite3_column_type(self._statement, i)
-                if typ == _lib.SQLITE_NULL:
-                    val = None
-                elif typ == _lib.SQLITE_INTEGER:
-                    val = _lib.sqlite3_column_int64(self._statement, i)
-                    val = int(val)
-                elif typ == _lib.SQLITE_FLOAT:
-                    val = _lib.sqlite3_column_double(self._statement, i)
-                elif typ == _lib.SQLITE_TEXT:
-                    text = _lib.sqlite3_column_text(self._statement, i)
-                    text_len = _lib.sqlite3_column_bytes(self._statement, i)
-                    val = _ffi.buffer(text, text_len)[:]
-                    val = self.__con.text_factory(val)
-                elif typ == _lib.SQLITE_BLOB:
-                    blob = _lib.sqlite3_column_blob(self._statement, i)
-                    blob_len = _lib.sqlite3_column_bytes(self._statement, i)
-                    val = _BLOB_TYPE(_ffi.buffer(blob, blob_len))
-            row.append(val)
-
-        row = tuple(row)
-        if self._row_factory is not None:
-            row = self._row_factory(cursor, row)
-        self._item = row
-
-    def _next(self, cursor):
-        try:
-            item = self._item
-        except AttributeError:
-            self._reset()
-            raise StopIteration
-        del self._item
-
-        ret = _lib.sqlite3_step(self._statement)
-        if ret not in (_lib.SQLITE_DONE, _lib.SQLITE_ROW):
-            _lib.sqlite3_reset(self._statement)
-            raise self.__con._get_exception(ret)
-        elif ret == _lib.SQLITE_ROW:
-            self._readahead(cursor)
-
-        return item
-
     def _get_description(self):
         if self._kind == Statement._DML:
             return None
diff --git a/lib_pypy/cffi/api.py b/lib_pypy/cffi/api.py
--- a/lib_pypy/cffi/api.py
+++ b/lib_pypy/cffi/api.py
@@ -25,7 +25,6 @@
             line = ''
         return '%s%s' % (line, self.args[0])
 
-
 class FFI(object):
     r'''
     The main top-level class that you instantiate once, or once per module.
diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py
--- a/pypy/module/cpyext/api.py
+++ b/pypy/module/cpyext/api.py
@@ -554,8 +554,8 @@
         from pypy.module.cpyext.pyobject import Reference
         # we hope that malloc removal removes the newtuple() that is
         # inserted exactly here by the varargs specializer
+        rffi.stackcounter.stacks_counter += 1
         llop.gc_stack_bottom(lltype.Void)   # marker for trackgcroot.py
-        rffi.stackcounter.stacks_counter += 1
         retval = fatal_value
         boxed_args = ()
         try:
diff --git a/pypy/module/micronumpy/arrayimpl/concrete.py b/pypy/module/micronumpy/arrayimpl/concrete.py
--- a/pypy/module/micronumpy/arrayimpl/concrete.py
+++ b/pypy/module/micronumpy/arrayimpl/concrete.py
@@ -281,7 +281,7 @@
 
     def astype(self, space, dtype):
         new_arr = W_NDimArray.from_shape(self.get_shape(), dtype)
-        if dtype.is_str_or_unicode():
+        if self.dtype.is_str_or_unicode() and not dtype.is_str_or_unicode():
             raise OperationError(space.w_NotImplementedError, space.wrap(
                 "astype(%s) not implemented yet" % self.dtype))
         else:
diff --git a/pypy/module/micronumpy/interp_support.py b/pypy/module/micronumpy/interp_support.py
--- a/pypy/module/micronumpy/interp_support.py
+++ b/pypy/module/micronumpy/interp_support.py
@@ -15,7 +15,7 @@
     items = []
     num_items = 0
     idx = 0
-    
+
     while (num_items < count or count == -1) and idx < len(s):
         nextidx = s.find(sep, idx)
         if nextidx < 0:
@@ -45,7 +45,7 @@
             items.append(val)
             num_items += 1
         idx = nextidx + 1
-    
+
     if count > num_items:
         raise OperationError(space.w_ValueError, space.wrap(
             "string is smaller than requested size"))
@@ -70,7 +70,7 @@
     if count * itemsize > length:
         raise OperationError(space.w_ValueError, space.wrap(
             "string is smaller than requested size"))
-        
+
     a = W_NDimArray.from_shape([count], dtype=dtype)
     loop.fromstring_loop(a, dtype, itemsize, s)
     return space.wrap(a)
diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -1487,14 +1487,14 @@
         a = concatenate((['abcdef'], ['abc']))
         assert a[0] == 'abcdef'
         assert str(a.dtype) == '|S6'
-    
+
     def test_record_concatenate(self):
         # only an exact match can succeed
         from numpypy import zeros, concatenate
         a = concatenate((zeros((2,),dtype=[('x', int), ('y', float)]),
                          zeros((2,),dtype=[('x', int), ('y', float)])))
         assert a.shape == (4,)
-        exc = raises(TypeError, concatenate, 
+        exc = raises(TypeError, concatenate,
                             (zeros((2,), dtype=[('x', int), ('y', float)]),
                             (zeros((2,), dtype=[('x', float), ('y', float)]))))
         assert str(exc.value).startswith('record type mismatch')
@@ -1677,11 +1677,15 @@
         a = array('x').astype('S3').dtype
         assert a.itemsize == 3
         # scalar vs. array
+        a = array([1, 2, 3.14156]).astype('S3').dtype
+        assert a.itemsize == 3
+        a = array(3.1415).astype('S3').dtype
+        assert a.itemsize == 3
         try:
-            a = array([1, 2, 3.14156]).astype('S3').dtype
-            assert a.itemsize == 3
+            a = array(['1', '2','3']).astype(float)
+            assert a[2] == 3.0
         except NotImplementedError:
-            skip('astype("S3") not implemented for numeric arrays')
+            skip('astype("float") not implemented for str arrays')
 
     def test_base(self):
         from numpypy import array
diff --git a/pypy/module/test_lib_pypy/lextab.py b/pypy/module/test_lib_pypy/lextab.py
deleted file mode 100644
--- a/pypy/module/test_lib_pypy/lextab.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# pycparser.lextab.py. This file automatically created by PLY (version 3.4). Don't edit!
-_tabversion   = '3.4'
-_lextokens    = {'VOID': 1, 'LBRACKET': 1, 'WCHAR_CONST': 1, 'FLOAT_CONST': 1, 'MINUS': 1, 'RPAREN': 1, 'LONG': 1, 'PLUS': 1, 'ELLIPSIS': 1, 'GT': 1, 'GOTO': 1, 'ENUM': 1, 'PERIOD': 1, 'GE': 1, 'INT_CONST_DEC': 1, 'ARROW': 1, 'HEX_FLOAT_CONST': 1, 'DOUBLE': 1, 'MINUSEQUAL': 1, 'INT_CONST_OCT': 1, 'TIMESEQUAL': 1, 'OR': 1, 'SHORT': 1, 'RETURN': 1, 'RSHIFTEQUAL': 1, 'RESTRICT': 1, 'STATIC': 1, 'SIZEOF': 1, 'UNSIGNED': 1, 'UNION': 1, 'COLON': 1, 'WSTRING_LITERAL': 1, 'DIVIDE': 1, 'FOR': 1, 'PLUSPLUS': 1, 'EQUALS': 1, 'ELSE': 1, 'INLINE': 1, 'EQ': 1, 'AND': 1, 'TYPEID': 1, 'LBRACE': 1, 'PPHASH': 1, 'INT': 1, 'SIGNED': 1, 'CONTINUE': 1, 'NOT': 1, 'OREQUAL': 1, 'MOD': 1, 'RSHIFT': 1, 'DEFAULT': 1, 'CHAR': 1, 'WHILE': 1, 'DIVEQUAL': 1, 'EXTERN': 1, 'CASE': 1, 'LAND': 1, 'REGISTER': 1, 'MODEQUAL': 1, 'NE': 1, 'SWITCH': 1, 'INT_CONST_HEX': 1, '_COMPLEX': 1, 'PLUSEQUAL': 1, 'STRUCT': 1, 'CONDOP': 1, 'BREAK': 1, 'VOLATILE': 1, 'ANDEQUAL': 1, 'DO': 1, 'LNOT': 1, 'CONST': 1, 'LOR': 1, 'CHAR_CONST': 1, 'LSHIFT': 1, 'RBRACE': 1, '_BOOL': 1, 'LE': 1, 'SEMI': 1, 'LT': 1, 'COMMA': 1, 'TYPEDEF': 1, 'XOR': 1, 'AUTO': 1, 'TIMES': 1, 'LPAREN': 1, 'MINUSMINUS': 1, 'ID': 1, 'IF': 1, 'STRING_LITERAL': 1, 'FLOAT': 1, 'XOREQUAL': 1, 'LSHIFTEQUAL': 1, 'RBRACKET': 1}
-_lexreflags   = 0
-_lexliterals  = ''
-_lexstateinfo = {'ppline': 'exclusive', 'pppragma': 'exclusive', 'INITIAL': 'inclusive'}
-_lexstatere   = {'ppline': [('(?P<t_ppline_FILENAME>"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P<t_ppline_LINE_NUMBER>(0(u?ll|U?LL|([uU][lL])|([lL][uU])|[uU]|[lL])?)|([1-9][0-9]*(u?ll|U?LL|([uU][lL])|([lL][uU])|[uU]|[lL])?))|(?P<t_ppline_NEWLINE>\\n)|(?P<t_ppline_PPLINE>line)', [None, ('t_ppline_FILENAME', 'FILENAME'), None, None, None, None, None, None, ('t_ppline_LINE_NUMBER', 'LINE_NUMBER'), None, None, None, None, None, None, None, None, ('t_ppline_NEWLINE', 'NEWLINE'), ('t_ppline_PPLINE', 'PPLINE')])], 'pppragma': [('(?P<t_pppragma_NEWLINE>\\n)|(?P<t_pppragma_PPPRAGMA>pragma)|(?P<t_pppragma_STR>"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P<t_pppragma_ID>[a-zA-Z_][0-9a-zA-Z_]*)', [None, ('t_pppragma_NEWLINE', 'NEWLINE'), ('t_pppragma_PPPRAGMA', 'PPPRAGMA'), ('t_pppragma_STR', 'STR'), None, None, None, None, None, None, ('t_pppragma_ID', 'ID')])], 'INITIAL': [('(?P<t_PPHASH>[ \\t]*\\#)|(?P<t_NEWLINE>\\n+)|(?P<t_FLOAT_CONST>((((([0-9]*\\.[0-9]+)|([0-9]+\\.))([eE][-+]?[0-9]+)?)|([0-9]+([eE][-+]?[0-9]+)))[FfLl]?))|(?P<t_HEX_FLOAT_CONST>(0[xX]([0-9a-fA-F]+|((([0-9a-fA-F]+)?\\.[0-9a-fA-F]+)|([0-9a-fA-F]+\\.)))([pP][+-]?[0-9]+)[FfLl]?))|(?P<t_INT_CONST_HEX>0[xX][0-9a-fA-F]+(u?ll|U?LL|([uU][lL])|([lL][uU])|[uU]|[lL])?)|(?P<t_BAD_CONST_OCT>0[0-7]*[89])|(?P<t_INT_CONST_OCT>0[0-7]*(u?ll|U?LL|([uU][lL])|([lL][uU])|[uU]|[lL])?)', [None, ('t_PPHASH', 'PPHASH'), ('t_NEWLINE', 'NEWLINE'), ('t_FLOAT_CONST', 'FLOAT_CONST'), None, None, None, None, None, None, None, None, None, ('t_HEX_FLOAT_CONST', 'HEX_FLOAT_CONST'), None, None, None, None, None, None, None, ('t_INT_CONST_HEX', 'INT_CONST_HEX'), None, None, None, ('t_BAD_CONST_OCT', 'BAD_CONST_OCT'), ('t_INT_CONST_OCT', 'INT_CONST_OCT')]), ('(?P<t_INT_CONST_DEC>(0(u?ll|U?LL|([uU][lL])|([lL][uU])|[uU]|[lL])?)|([1-9][0-9]*(u?ll|U?LL|([uU][lL])|([lL][uU])|[uU]|[lL])?))|(?P<t_CHAR_CONST>\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))\')|(?P<t_WCHAR_CONST>L\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))\')|(?P<t_UNMATCHED_QUOTE>(\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*\\n)|(\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*$))|(?P<t_BAD_CHAR_CONST>(\'([^\'\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))[^\'\n]+\')|(\'\')|(\'([\\\\][^a-zA-Z._~^!=&\\^\\-\\\\?\'"x0-7])[^\'\\n]*\'))|(?P<t_WSTRING_LITERAL>L"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P<t_BAD_STRING_LITERAL>"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*([\\\\][^a-zA-Z._~^!=&\\^\\-\\\\?\'"x0-7])([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P<t_ID>[a-zA-Z_][0-9a-zA-Z_]*)', [None, ('t_INT_CONST_DEC', 'INT_CONST_DEC'), None, None, None, None, None, None, None, None, ('t_CHAR_CONST', 'CHAR_CONST'), None, None, None, None, None, None, ('t_WCHAR_CONST', 'WCHAR_CONST'), None, None, None, None, None, None, ('t_UNMATCHED_QUOTE', 'UNMATCHED_QUOTE'), None, None, None, None, None, None, None, None, None, None, None, None, None, None, ('t_BAD_CHAR_CONST', 'BAD_CHAR_CONST'), None, None, None, None, None, None, None, None, None, None, ('t_WSTRING_LITERAL', 'WSTRING_LITERAL'), None, None, None, None, None, None, ('t_BAD_STRING_LITERAL', 'BAD_STRING_LITERAL'), None, None, None, None, None, None, None, None, None, None, None, None, None, ('t_ID', 'ID')]), ('(?P<t_STRING_LITERAL>"([^"\\\\\\n]|(\\\\(([a-zA-Z._~!=&\\^\\-\\\\?\'"])|(\\d+)|(x[0-9a-fA-F]+))))*")|(?P<t_ELLIPSIS>\\.\\.\\.)|(?P<t_PLUSPLUS>\\+\\+)|(?P<t_LOR>\\|\\|)|(?P<t_XOREQUAL>\\^=)|(?P<t_OREQUAL>\\|=)|(?P<t_LSHIFTEQUAL><<=)|(?P<t_RSHIFTEQUAL>>>=)|(?P<t_PLUSEQUAL>\\+=)|(?P<t_TIMESEQUAL>\\*=)|(?P<t_PLUS>\\+)|(?P<t_MODEQUAL>%=)|(?P<t_LBRACE>\\{)|(?P<t_DIVEQUAL>/=)|(?P<t_RBRACKET>\\])|(?P<t_CONDOP>\\?)', [None, (None, 'STRING_LITERAL'), None, None, None, None, None, None, (None, 'ELLIPSIS'), (None, 'PLUSPLUS'), (None, 'LOR'), (None, 'XOREQUAL'), (None, 'OREQUAL'), (None, 'LSHIFTEQUAL'), (None, 'RSHIFTEQUAL'), (None, 'PLUSEQUAL'), (None, 'TIMESEQUAL'), (None, 'PLUS'), (None, 'MODEQUAL'), (None, 'LBRACE'), (None, 'DIVEQUAL'), (None, 'RBRACKET'), (None, 'CONDOP')]), ('(?P<t_XOR>\\^)|(?P<t_LSHIFT><<)|(?P<t_LE><=)|(?P<t_LPAREN>\\()|(?P<t_ARROW>->)|(?P<t_EQ>==)|(?P<t_RBRACE>\\})|(?P<t_NE>!=)|(?P<t_MINUSMINUS>--)|(?P<t_OR>\\|)|(?P<t_TIMES>\\*)|(?P<t_LBRACKET>\\[)|(?P<t_GE>>=)|(?P<t_RPAREN>\\))|(?P<t_LAND>&&)|(?P<t_RSHIFT>>>)|(?P<t_ANDEQUAL>&=)|(?P<t_MINUSEQUAL>-=)|(?P<t_PERIOD>\\.)|(?P<t_EQUALS>=)|(?P<t_LT><)|(?P<t_COMMA>,)|(?P<t_DIVIDE>/)|(?P<t_AND>&)|(?P<t_MOD>%)|(?P<t_SEMI>;)|(?P<t_MINUS>-)|(?P<t_GT>>)|(?P<t_COLON>:)|(?P<t_NOT>~)|(?P<t_LNOT>!)', [None, (None, 'XOR'), (None, 'LSHIFT'), (None, 'LE'), (None, 'LPAREN'), (None, 'ARROW'), (None, 'EQ'), (None, 'RBRACE'), (None, 'NE'), (None, 'MINUSMINUS'), (None, 'OR'), (None, 'TIMES'), (None, 'LBRACKET'), (None, 'GE'), (None, 'RPAREN'), (None, 'LAND'), (None, 'RSHIFT'), (None, 'ANDEQUAL'), (None, 'MINUSEQUAL'), (None, 'PERIOD'), (None, 'EQUALS'), (None, 'LT'), (None, 'COMMA'), (None, 'DIVIDE'), (None, 'AND'), (None, 'MOD'), (None, 'SEMI'), (None, 'MINUS'), (None, 'GT'), (None, 'COLON'), (None, 'NOT'), (None, 'LNOT')])]}
-_lexstateignore = {'ppline': ' \t', 'pppragma': ' \t<>.-{}();+-*/$%@&^~!?:,0123456789', 'INITIAL': ' \t'}
-_lexstateerrorf = {'ppline': 't_ppline_error', 'pppragma': 't_pppragma_error', 'INITIAL': 't_error'}
diff --git a/pypy/module/test_lib_pypy/pyrepl/test_bugs.py b/pypy/module/test_lib_pypy/pyrepl/test_bugs.py
--- a/pypy/module/test_lib_pypy/pyrepl/test_bugs.py
+++ b/pypy/module/test_lib_pypy/pyrepl/test_bugs.py
@@ -24,7 +24,6 @@
 # (applicable) bug reports
 
 import pytest
-import os, sys
 
 
 class HistoricalTestReader(HistoricalReader, BaseTestReader):
diff --git a/pypy/module/test_lib_pypy/pyrepl/test_readline.py b/pypy/module/test_lib_pypy/pyrepl/test_readline.py
--- a/pypy/module/test_lib_pypy/pyrepl/test_readline.py
+++ b/pypy/module/test_lib_pypy/pyrepl/test_readline.py
@@ -1,5 +1,4 @@
 import pytest
-import os, sys
 
 
 @pytest.mark.skipif("os.name != 'posix' or 'darwin' in sys.platform")
diff --git a/pypy/module/test_lib_pypy/test_sqlite3.py b/pypy/module/test_lib_pypy/test_sqlite3.py
--- a/pypy/module/test_lib_pypy/test_sqlite3.py
+++ b/pypy/module/test_lib_pypy/test_sqlite3.py
@@ -96,18 +96,6 @@
      pytest.raises(_sqlite3.ProgrammingError, "cur.executemany(1,2,3,4,5)")
 
 @pytest.mark.skipif("not hasattr(sys, 'pypy_translation_info')")
-def test_cursor_del():
-    con = _sqlite3.connect(':memory:')
-    cur = con.execute('select 1')
-    stmt = cur._Cursor__statement
-    cur.close()
-    cur = con.execute('select 1')
-    assert cur._Cursor__statement is stmt
-    del cur; import gc; gc.collect(); gc.collect()
-    cur = con.execute('select 1')
-    assert cur._Cursor__statement is stmt
-
- at pytest.mark.skipif("not hasattr(sys, 'pypy_translation_info')")
 def test_connection_del(tmpdir):
     """For issue1325."""
     import os
@@ -205,3 +193,8 @@
     con.commit()
     con.execute('BEGIN')
     con.commit()
+
+def test_row_factory_use():
+    con = _sqlite3.connect(':memory:')
+    con.row_factory = 42
+    con.execute('select 1')
diff --git a/pypy/module/test_lib_pypy/yacctab.py b/pypy/module/test_lib_pypy/yacctab.py
deleted file mode 100644
--- a/pypy/module/test_lib_pypy/yacctab.py
+++ /dev/null
@@ -1,280 +0,0 @@
-
-# yacctab.py
-# This file is automatically generated. Do not edit.
-_tabversion = '3.2'
-
-_lr_method = 'LALR'
-
-_lr_signature = '\x9er\xf1|P\xb6\xbb\x13\xed\xf52\xa1\xb1\xc3J\x12'
-    
-_lr_action_items = {'VOID':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[6,6,-61,-72,-71,-58,-54,-55,-33,-29,-59,6,-34,-53,-68,-63,-52,6,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,6,-67,6,-70,-74,6,-57,-82,-249,-81,6,-107,-30,6,-97,-96,6,-45,-46,6,-109,6,6,6,6,-88,6,6,-36,6,-47,6,6,-83,-89,-250,6,-110,6,6,-111,-113,-112,6,6,-98,-37,-39,-42,-38,-40,6,-148,-147,-43,-149,-41,-85,-84,-90,6,6,-100,-99,-167,-166,6,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'LBRACKET':([1,2,3,5,6,9,10,13,14,17,18,19,21,23,24,25,27,28,29,32,33,35,37,39,40,42,43,44,45,46,49,50,51,52,54,55,56,58,59,63,64,66,67,68,69,76,77,83,87,89,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,129,138,139,149,151,152,153,154,155,174,178,180,184,185,191,195,216,217,218,223,224,231,235,262,264,265,273,274,277,281,285,286,314,318,319,323,329,350,351,357,359,360,361,362,366,369,371,387,388,389,390,400,401,409,],[-251,-61,-72,-71,-58,-54,-55,-59,-251,-53,-68,-63,-52,-56,-170,61,-66,-251,-69,-73,-108,-64,-60,-62,-65,-251,-67,-251,-70,-74,-57,-50,-9,-10,-82,-249,-81,-49,61,-97,-96,-116,-114,-26,-25,-48,-51,-109,-251,-251,-233,-243,-247,-244,-241,-231,-232,182,-240,-220,-237,-245,-238,-242,-239,-230,221,-115,-117,-83,-250,-21,-80,-22,-79,-248,-246,-226,-227,-110,-111,221,-113,-112,221,312,221,-98,325,-237,-85,-84,-225,-224,-223,-234,221,221,312,-100,-99,-132,325,-221,-222,325,-146,-140,-142,-144,-135,325,-133,-141,-143,-145,-134,325,-228,-229,]),'WCHAR_CONST':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,96,-45,-219,96,-217,96,-216,96,-215,96,96,-214,-218,96,96,-250,96,-176,-179,-177,-173,-174,-178,-180,96,-182,-183,-175,-181,96,-215,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,-251,-39,-42,-38,96,-40,96,96,-148,-147,-43,-149,96,-41,96,96,96,-215,96,-12,96,96,-11,-167,-166,96,-164,96,96,-150,96,-163,-151,96,96,96,96,-251,96,-215,-251,-131,-162,-165,96,-154,96,-152,96,96,96,-153,96,96,96,-251,96,-158,-157,-155,96,96,96,-159,-156,96,-161,-160,]),'FLOAT_CONST':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,97,-45,-219,97,-217,97,-216,97,-215,97,97,-214,-218,97,97,-250,97,-176,-179,-177,-173,-174,-178,-180,97,-182,-183,-175,-181,97,-215,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,-251,-39,-42,-38,97,-40,97,97,-148,-147,-43,-149,97,-41,97,97,97,-215,97,-12,97,97,-11,-167,-166,97,-164,97,97,-150,97,-163,-151,97,97,97,97,-251,97,-215,-251,-131,-162,-165,97,-154,97,-152,97,97,97,-153,97,97,97,-251,97,-158,-157,-155,97,97,97,-159,-156,97,-161,-160,]),'MINUS':([55,61,75,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,120,123,124,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,182,183,184,186,187,188,189,190,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,262,270,273,274,277,281,282,283,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,349,350,351,352,353,356,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[-249,100,-45,-219,-206,-233,-243,-247,-244,-241,-231,100,-217,-232,-208,-187,100,-216,100,-240,-215,-220,100,100,-237,-245,-214,-238,200,-242,-239,-218,-230,100,100,-250,100,-176,-179,-177,-173,-174,-178,-180,100,-182,-183,-175,-181,-248,100,-212,-215,-246,-226,100,100,-227,100,-206,-211,100,-209,-210,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,-251,-39,-42,-38,100,-40,100,100,-148,-147,-43,-149,100,-41,-237,100,-225,-224,-223,-234,100,100,200,200,200,-192,200,200,200,-191,200,200,-189,-188,200,200,200,200,200,-190,-215,100,-12,100,100,-11,-167,-166,100,-164,100,100,-150,100,-163,-151,100,100,-213,-221,-222,100,100,-207,-251,100,-215,-251,-131,-162,-165,100,-154,100,-152,100,100,100,-153,100,100,100,-251,-228,100,-158,-157,-155,-229,100,100,100,-159,-156,100,-161,-160,]),'RPAREN':([1,2,3,5,6,9,10,13,14,17,18,19,21,23,24,25,27,28,29,32,33,35,37,39,40,42,43,44,45,46,49,50,51,52,53,54,56,58,59,62,63,64,66,67,68,69,76,77,83,87,89,92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,122,124,125,126,127,128,129,130,131,132,138,139,149,151,152,153,154,155,174,176,178,180,183,184,185,187,188,190,191,192,193,194,195,196,216,217,218,219,220,222,223,224,225,231,247,264,265,271,272,273,274,276,277,278,279,280,281,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,306,307,308,309,313,314,315,316,317,318,319,339,349,350,351,355,356,359,360,361,362,365,378,380,383,384,386,387,388,389,401,404,407,409,410,411,414,],[-251,-61,-72,-71,-58,-54,-55,-59,-251,-53,-68,-63,-52,-56,-170,-106,-66,-251,-69,-73,-108,-64,-60,-62,-65,-251,-67,-251,-70,-74,-57,-50,-9,-10,83,-82,-81,-49,-107,-251,-97,-96,-116,-114,-26,-25,-48,-51,-109,-251,-251,-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,-185,-242,-239,-171,-230,216,-15,217,-120,-251,-16,-118,-124,-115,-117,-83,-250,-21,-80,-22,-79,-248,-212,-246,-226,277,-227,-110,-206,-211,-209,-111,281,283,-168,-251,-210,-113,-112,-251,-123,-2,-122,-139,-137,-1,-98,-14,-85,-84,-172,349,-225,-224,-235,-223,351,353,354,-234,-136,-251,-137,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,-19,-20,359,360,-251,-138,-125,-119,-121,-100,-99,-13,-213,-221,-222,-169,-207,-146,-140,-142,-144,389,395,397,399,-236,-186,-141,-143,-145,-228,-251,412,-229,-251,415,418,]),'LONG':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[19,19,-61,-72,-71,-58,-54,-55,-33,-29,-59,19,-34,-53,-68,-63,-52,19,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,19,-67,19,-70,-74,19,-57,-82,-249,-81,19,-107,-30,19,-97,-96,19,-45,-46,19,-109,19,19,19,19,-88,19,19,-36,19,-47,19,19,-83,-89,-250,19,-110,19,19,-111,-113,-112,19,19,-98,-37,-39,-42,-38,-40,19,-148,-147,-43,-149,-41,-85,-84,-90,19,19,-100,-99,-167,-166,19,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'PLUS':([55,61,75,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,120,123,124,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,182,183,184,186,187,188,189,190,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,262,270,273,274,277,281,282,283,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,349,350,351,352,353,356,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[-249,106,-45,-219,-206,-233,-243,-247,-244,-241,-231,106,-217,-232,-208,-187,106,-216,106,-240,-215,-220,106,106,-237,-245,-214,-238,204,-242,-239,-218,-230,106,106,-250,106,-176,-179,-177,-173,-174,-178,-180,106,-182,-183,-175,-181,-248,106,-212,-215,-246,-226,106,106,-227,106,-206,-211,106,-209,-210,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,-251,-39,-42,-38,106,-40,106,106,-148,-147,-43,-149,106,-41,-237,106,-225,-224,-223,-234,106,106,204,204,204,-192,204,204,204,-191,204,204,-189,-188,204,204,204,204,204,-190,-215,106,-12,106,106,-11,-167,-166,106,-164,106,106,-150,106,-163,-151,106,106,-213,-221,-222,106,106,-207,-251,106,-215,-251,-131,-162,-165,106,-154,106,-152,106,106,106,-153,106,106,106,-251,-228,106,-158,-157,-155,-229,106,106,106,-159,-156,106,-161,-160,]),'ELLIPSIS':([227,],[316,]),'GT':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,205,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,205,-194,-192,-196,205,-195,-191,-198,205,-189,-188,-197,205,205,205,205,-190,-213,-221,-222,-207,-228,-229,]),'GOTO':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,240,-250,-39,-42,-38,-40,240,-148,-147,-43,-149,240,-41,-167,-166,-164,240,-150,-163,-151,240,-162,-165,-154,240,-152,240,-153,240,240,-158,-157,-155,240,240,-159,-156,240,-161,-160,]),'ENUM':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[26,26,-61,-72,-71,-58,-54,-55,-33,-29,-59,26,-34,-53,-68,-63,-52,26,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,26,-67,26,-70,-74,26,-57,-82,-249,-81,26,-107,-30,26,-97,-96,26,-45,-46,26,-109,26,26,26,26,-88,26,26,-36,26,-47,26,26,-83,-89,-250,26,-110,26,26,-111,-113,-112,26,26,-98,-37,-39,-42,-38,-40,26,-148,-147,-43,-149,-41,-85,-84,-90,26,26,-100,-99,-167,-166,26,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'PERIOD':([55,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,178,180,184,235,262,273,274,277,281,323,329,350,351,357,366,369,371,390,400,401,409,],[-249,-233,-243,-247,-244,-241,-231,-232,181,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-246,-226,-227,324,-237,-225,-224,-223,-234,-132,324,-221,-222,324,-135,324,-133,-134,324,-228,-229,]),'GE':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,209,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,209,-194,-192,-196,209,-195,-191,-198,209,-189,-188,-197,209,209,209,209,-190,-213,-221,-222,-207,-228,-229,]),'INT_CONST_DEC':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,117,-45,-219,117,-217,117,-216,117,-215,117,117,-214,-218,117,117,-250,117,-176,-179,-177,-173,-174,-178,-180,117,-182,-183,-175,-181,117,-215,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,-251,-39,-42,-38,117,-40,117,117,-148,-147,-43,-149,117,-41,117,117,117,-215,117,-12,117,117,-11,-167,-166,117,-164,117,117,-150,117,-163,-151,117,117,117,117,-251,117,-215,-251,-131,-162,-165,117,-154,117,-152,117,117,117,-153,117,117,117,-251,117,-158,-157,-155,117,117,117,-159,-156,117,-161,-160,]),'ARROW':([93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,178,180,184,262,273,274,277,281,350,351,401,409,],[-233,-243,-247,-244,-241,-231,-232,179,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-246,-226,-227,-237,-225,-224,-223,-234,-221,-222,-228,-229,]),'HEX_FLOAT_CONST':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,119,-45,-219,119,-217,119,-216,119,-215,119,119,-214,-218,119,119,-250,119,-176,-179,-177,-173,-174,-178,-180,119,-182,-183,-175,-181,119,-215,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,-251,-39,-42,-38,119,-40,119,119,-148,-147,-43,-149,119,-41,119,119,119,-215,119,-12,119,119,-11,-167,-166,119,-164,119,119,-150,119,-163,-151,119,119,119,119,-251,119,-215,-251,-131,-162,-165,119,-154,119,-152,119,119,119,-153,119,119,119,-251,119,-158,-157,-155,119,119,119,-159,-156,119,-161,-160,]),'DOUBLE':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[40,40,-61,-72,-71,-58,-54,-55,-33,-29,-59,40,-34,-53,-68,-63,-52,40,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,40,-67,40,-70,-74,40,-57,-82,-249,-81,40,-107,-30,40,-97,-96,40,-45,-46,40,-109,40,40,40,40,-88,40,40,-36,40,-47,40,40,-83,-89,-250,40,-110,40,40,-111,-113,-112,40,40,-98,-37,-39,-42,-38,-40,40,-148,-147,-43,-149,-41,-85,-84,-90,40,40,-100,-99,-167,-166,40,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'MINUSEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[163,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'INT_CONST_OCT':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,120,-45,-219,120,-217,120,-216,120,-215,120,120,-214,-218,120,120,-250,120,-176,-179,-177,-173,-174,-178,-180,120,-182,-183,-175,-181,120,-215,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,-251,-39,-42,-38,120,-40,120,120,-148,-147,-43,-149,120,-41,120,120,120,-215,120,-12,120,120,-11,-167,-166,120,-164,120,120,-150,120,-163,-151,120,120,120,120,-251,120,-215,-251,-131,-162,-165,120,-154,120,-152,120,120,120,-153,120,120,120,-251,120,-158,-157,-155,120,120,120,-159,-156,120,-161,-160,]),'TIMESEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[172,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'OR':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,214,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,214,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,214,-199,-201,-202,-190,-213,-221,-222,-207,-228,-229,]),'SHORT':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[2,2,-61,-72,-71,-58,-54,-55,-33,-29,-59,2,-34,-53,-68,-63,-52,2,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,2,-67,2,-70,-74,2,-57,-82,-249,-81,2,-107,-30,2,-97,-96,2,-45,-46,2,-109,2,2,2,2,-88,2,2,-36,2,-47,2,2,-83,-89,-250,2,-110,2,2,-111,-113,-112,2,2,-98,-37,-39,-42,-38,-40,2,-148,-147,-43,-149,-41,-85,-84,-90,2,2,-100,-99,-167,-166,2,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'RETURN':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,243,-250,-39,-42,-38,-40,243,-148,-147,-43,-149,243,-41,-167,-166,-164,243,-150,-163,-151,243,-162,-165,-154,243,-152,243,-153,243,243,-158,-157,-155,243,243,-159,-156,243,-161,-160,]),'RSHIFTEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[173,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'RESTRICT':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,28,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,66,68,73,75,80,82,83,84,85,86,87,88,89,112,139,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[32,32,-61,-72,-71,-58,-54,-55,-33,-29,-59,32,-34,-53,-68,-63,-52,32,-56,-170,-106,-66,32,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,32,-67,32,-70,-74,32,-57,-82,-249,-81,32,-107,-30,32,-97,-96,-116,32,32,-45,-46,32,-109,32,32,32,32,-88,32,32,-117,-36,32,-47,32,32,-83,-89,-250,32,-110,32,32,-111,-113,-112,32,32,-98,-37,-39,-42,-38,-40,32,-148,-147,-43,-149,-41,-85,-84,-90,32,32,-100,-99,-167,-166,32,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'STATIC':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,59,60,62,63,64,73,75,80,82,83,144,145,146,149,151,185,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[9,9,-61,-72,-71,-58,-54,-55,-33,-29,-59,9,-34,-53,-68,-63,-52,9,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,9,-67,9,-70,-74,9,-57,-82,-249,-81,-107,-30,9,-97,-96,9,-45,-46,9,-109,-36,9,-47,-83,-250,-110,-111,-113,-112,9,9,-98,-37,-39,-42,-38,-40,9,-148,-147,-43,-149,-41,-85,-84,9,9,-100,-99,-167,-166,9,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'SIZEOF':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,99,-45,-219,99,-217,99,-216,99,-215,99,99,-214,-218,99,99,-250,99,-176,-179,-177,-173,-174,-178,-180,99,-182,-183,-175,-181,99,-215,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,-251,-39,-42,-38,99,-40,99,99,-148,-147,-43,-149,99,-41,99,99,99,-215,99,-12,99,99,-11,-167,-166,99,-164,99,99,-150,99,-163,-151,99,99,99,99,-251,99,-215,-251,-131,-162,-165,99,-154,99,-152,99,99,99,-153,99,99,99,-251,99,-158,-157,-155,99,99,99,-159,-156,99,-161,-160,]),'UNSIGNED':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[18,18,-61,-72,-71,-58,-54,-55,-33,-29,-59,18,-34,-53,-68,-63,-52,18,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,18,-67,18,-70,-74,18,-57,-82,-249,-81,18,-107,-30,18,-97,-96,18,-45,-46,18,-109,18,18,18,18,-88,18,18,-36,18,-47,18,18,-83,-89,-250,18,-110,18,18,-111,-113,-112,18,18,-98,-37,-39,-42,-38,-40,18,-148,-147,-43,-149,-41,-85,-84,-90,18,18,-100,-99,-167,-166,18,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'UNION':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[20,20,-61,-72,-71,-58,-54,-55,-33,-29,-59,20,-34,-53,-68,-63,-52,20,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,20,-67,20,-70,-74,20,-57,-82,-249,-81,20,-107,-30,20,-97,-96,20,-45,-46,20,-109,20,20,20,20,-88,20,20,-36,20,-47,20,20,-83,-89,-250,20,-110,20,20,-111,-113,-112,20,20,-98,-37,-39,-42,-38,-40,20,-148,-147,-43,-149,-41,-85,-84,-90,20,20,-100,-99,-167,-166,20,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'COLON':([2,3,5,6,13,18,19,24,25,27,29,32,33,35,37,39,40,43,45,46,54,56,59,63,64,83,87,89,90,92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,122,124,149,151,152,153,154,155,161,174,176,178,180,184,185,187,188,190,191,194,196,216,217,231,248,262,264,265,267,268,271,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,318,319,338,349,350,351,355,356,386,401,409,],[-61,-72,-71,-58,-59,-68,-63,-170,-106,-66,-69,-73,-108,-64,-60,-62,-65,-67,-70,-74,-82,-81,-107,-97,-96,-109,-251,-251,156,-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,-185,-242,-239,-171,-230,-83,-250,-21,-80,-22,-79,270,-248,-212,-246,-226,-227,-110,-206,-211,-209,-111,-168,-210,-113,-112,-98,336,345,-85,-84,-184,156,-172,-225,-224,-223,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,358,-202,-190,-100,-99,379,-213,-221,-222,-169,-207,-186,-228,-229,]),'$end':([0,8,11,12,15,22,31,36,38,47,60,75,144,151,237,344,],[-251,0,-33,-29,-34,-27,-32,-31,-35,-28,-30,-45,-36,-250,-37,-151,]),'WSTRING_LITERAL':([55,61,75,91,93,95,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,95,-45,-219,174,-247,95,-217,95,-216,95,-215,95,95,-214,-218,95,95,-250,95,-176,-179,-177,-173,-174,-178,-180,95,-182,-183,-175,-181,-248,95,-215,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,-251,-39,-42,-38,95,-40,95,95,-148,-147,-43,-149,95,-41,95,95,95,-215,95,-12,95,95,-11,-167,-166,95,-164,95,95,-150,95,-163,-151,95,95,95,95,-251,95,-215,-251,-131,-162,-165,95,-154,95,-152,95,95,95,-153,95,95,95,-251,95,-158,-157,-155,95,95,95,-159,-156,95,-161,-160,]),'DIVIDE':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,207,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,207,207,207,207,207,207,207,207,207,207,-189,-188,207,207,207,207,207,-190,-213,-221,-222,-207,-228,-229,]),'FOR':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,245,-250,-39,-42,-38,-40,245,-148,-147,-43,-149,245,-41,-167,-166,-164,245,-150,-163,-151,245,-162,-165,-154,245,-152,245,-153,245,245,-158,-157,-155,245,245,-159,-156,245,-161,-160,]),'PLUSPLUS':([55,61,75,91,93,94,95,96,97,98,99,100,101,102,105,106,108,109,110,111,112,113,114,115,116,117,119,120,123,124,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,180,182,183,184,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,262,270,273,274,277,281,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,350,351,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[-249,108,-45,-219,-233,-243,-247,-244,-241,-231,108,-217,-232,180,108,-216,108,-240,-215,-220,108,108,-237,-245,-214,-238,-242,-239,-218,-230,108,108,-250,108,-176,-179,-177,-173,-174,-178,-180,108,-182,-183,-175,-181,-248,108,-215,-246,-226,108,108,-227,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,-251,-39,-42,-38,108,-40,108,108,-148,-147,-43,-149,108,-41,-237,108,-225,-224,-223,-234,108,108,-215,108,-12,108,108,-11,-167,-166,108,-164,108,108,-150,108,-163,-151,108,108,-221,-222,108,108,-251,108,-215,-251,-131,-162,-165,108,-154,108,-152,108,108,108,-153,108,108,108,-251,-228,108,-158,-157,-155,-229,108,108,108,-159,-156,108,-161,-160,]),'EQUALS':([25,33,59,73,83,92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,137,143,151,174,176,178,180,184,185,187,188,190,191,196,216,217,262,273,274,277,281,323,329,349,350,351,356,366,371,390,401,409,],[-106,-108,-107,141,-109,165,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,232,141,-250,-248,-212,-246,-226,-227,-110,-206,-211,-209,-111,-210,-113,-112,-237,-225,-224,-223,-234,-132,372,-213,-221,-222,-207,-135,-133,-134,-228,-229,]),'ELSE':([151,238,239,242,244,255,260,331,332,335,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[-250,-39,-42,-38,-40,-43,-41,-167,-166,-164,-163,-151,-162,-165,-154,-152,-153,-158,-157,413,-159,-156,-161,-160,]),'ANDEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[170,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'EQ':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,211,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,211,-194,-192,-196,-200,-195,-191,-198,211,-189,-188,-197,211,-199,211,211,-190,-213,-221,-222,-207,-228,-229,]),'AND':([55,61,75,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,120,123,124,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,182,183,184,186,187,188,189,190,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,262,270,273,274,277,281,282,283,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,349,350,351,352,353,356,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[-249,116,-45,-219,-206,-233,-243,-247,-244,-241,-231,116,-217,-232,-208,-187,116,-216,116,-240,-215,-220,116,116,-237,-245,-214,-238,212,-242,-239,-218,-230,116,116,-250,116,-176,-179,-177,-173,-174,-178,-180,116,-182,-183,-175,-181,-248,116,-212,-215,-246,-226,116,116,-227,116,-206,-211,116,-209,-210,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,-251,-39,-42,-38,116,-40,116,116,-148,-147,-43,-149,116,-41,-237,116,-225,-224,-223,-234,116,116,-193,212,-194,-192,-196,-200,-195,-191,-198,212,-189,-188,-197,212,-199,-201,212,-190,-215,116,-12,116,116,-11,-167,-166,116,-164,116,116,-150,116,-163,-151,116,116,-213,-221,-222,116,116,-207,-251,116,-215,-251,-131,-162,-165,116,-154,116,-152,116,116,116,-153,116,116,116,-251,-228,116,-158,-157,-155,-229,116,116,116,-159,-156,116,-161,-160,]),'TYPEID':([0,1,2,3,5,6,7,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,29,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[24,24,-61,-72,-71,-58,54,-54,-55,-33,-29,-59,24,-34,-53,-68,-63,-87,-52,24,-56,-170,-106,63,-66,-69,-32,-73,-108,-86,-64,-31,-60,-35,-62,-65,24,-67,24,-70,-74,24,-57,-82,-249,-81,24,-107,-30,24,-97,-96,24,-45,-46,24,-109,24,24,24,24,-88,24,24,-36,24,-47,24,24,-83,-89,-250,24,-110,24,24,-111,-113,-112,24,24,-98,-37,-39,-42,-38,-40,24,-148,-147,-43,-149,-41,-85,-84,-90,24,24,-100,-99,-167,-166,24,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'LBRACE':([7,20,25,26,33,34,48,54,55,56,59,63,64,73,75,78,80,81,82,83,141,142,145,146,151,185,191,216,217,235,238,239,242,244,251,253,254,255,257,259,260,283,322,326,327,331,332,335,336,340,342,344,345,349,353,354,357,369,372,373,374,377,379,382,391,395,396,397,399,400,405,406,408,413,415,416,417,418,419,420,],[55,-87,-106,55,-108,-86,-251,55,-249,55,-107,55,55,-251,-45,-7,-46,55,-8,-109,55,55,55,-47,-250,-110,-111,-113,-112,-251,-39,-42,-38,-40,55,-148,-147,-43,-149,55,-41,55,-12,55,-11,-167,-166,-164,55,-150,-163,-151,55,55,55,55,-251,-251,-131,-162,-165,-154,55,-152,55,55,-153,55,55,-251,-158,-157,-155,55,55,-159,-156,55,-161,-160,]),'PPHASH':([0,11,12,15,22,31,36,38,60,75,144,151,237,344,],[38,-33,-29,-34,38,-32,-31,-35,-30,-45,-36,-250,-37,-151,]),'INT':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[39,39,-61,-72,-71,-58,-54,-55,-33,-29,-59,39,-34,-53,-68,-63,-52,39,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,39,-67,39,-70,-74,39,-57,-82,-249,-81,39,-107,-30,39,-97,-96,39,-45,-46,39,-109,39,39,39,39,-88,39,39,-36,39,-47,39,39,-83,-89,-250,39,-110,39,39,-111,-113,-112,39,39,-98,-37,-39,-42,-38,-40,39,-148,-147,-43,-149,-41,-85,-84,-90,39,39,-100,-99,-167,-166,39,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'SIGNED':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[43,43,-61,-72,-71,-58,-54,-55,-33,-29,-59,43,-34,-53,-68,-63,-52,43,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,43,-67,43,-70,-74,43,-57,-82,-249,-81,43,-107,-30,43,-97,-96,43,-45,-46,43,-109,43,43,43,43,-88,43,43,-36,43,-47,43,43,-83,-89,-250,43,-110,43,43,-111,-113,-112,43,43,-98,-37,-39,-42,-38,-40,43,-148,-147,-43,-149,-41,-85,-84,-90,43,43,-100,-99,-167,-166,43,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'CONTINUE':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,246,-250,-39,-42,-38,-40,246,-148,-147,-43,-149,246,-41,-167,-166,-164,246,-150,-163,-151,246,-162,-165,-154,246,-152,246,-153,246,246,-158,-157,-155,246,246,-159,-156,246,-161,-160,]),'NOT':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,123,-45,-219,123,-217,123,-216,123,-215,123,123,-214,-218,123,123,-250,123,-176,-179,-177,-173,-174,-178,-180,123,-182,-183,-175,-181,123,-215,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,-251,-39,-42,-38,123,-40,123,123,-148,-147,-43,-149,123,-41,123,123,123,-215,123,-12,123,123,-11,-167,-166,123,-164,123,123,-150,123,-163,-151,123,123,123,123,-251,123,-215,-251,-131,-162,-165,123,-154,123,-152,123,123,123,-153,123,123,123,-251,123,-158,-157,-155,123,123,123,-159,-156,123,-161,-160,]),'OREQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[171,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'MOD':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,215,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,215,215,215,215,215,215,215,215,215,215,-189,-188,215,215,215,215,215,-190,-213,-221,-222,-207,-228,-229,]),'RSHIFT':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,197,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,197,-194,-192,197,197,197,-191,197,197,-189,-188,197,197,197,197,197,-190,-213,-221,-222,-207,-228,-229,]),'DEFAULT':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,248,-250,-39,-42,-38,-40,248,-148,-147,-43,-149,248,-41,-167,-166,-164,248,-150,-163,-151,248,-162,-165,-154,248,-152,248,-153,248,248,-158,-157,-155,248,248,-159,-156,248,-161,-160,]),'CHAR':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[37,37,-61,-72,-71,-58,-54,-55,-33,-29,-59,37,-34,-53,-68,-63,-52,37,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,37,-67,37,-70,-74,37,-57,-82,-249,-81,37,-107,-30,37,-97,-96,37,-45,-46,37,-109,37,37,37,37,-88,37,37,-36,37,-47,37,37,-83,-89,-250,37,-110,37,37,-111,-113,-112,37,37,-98,-37,-39,-42,-38,-40,37,-148,-147,-43,-149,-41,-85,-84,-90,37,37,-100,-99,-167,-166,37,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'WHILE':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,343,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,249,-250,-39,-42,-38,-40,249,-148,-147,-43,-149,249,-41,-167,-166,-164,249,-150,-163,381,-151,249,-162,-165,-154,249,-152,249,-153,249,249,-158,-157,-155,249,249,-159,-156,249,-161,-160,]),'DIVEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[162,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'EXTERN':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,59,60,62,63,64,73,75,80,82,83,144,145,146,149,151,185,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[10,10,-61,-72,-71,-58,-54,-55,-33,-29,-59,10,-34,-53,-68,-63,-52,10,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,10,-67,10,-70,-74,10,-57,-82,-249,-81,-107,-30,10,-97,-96,10,-45,-46,10,-109,-36,10,-47,-83,-250,-110,-111,-113,-112,10,10,-98,-37,-39,-42,-38,-40,10,-148,-147,-43,-149,-41,-85,-84,10,10,-100,-99,-167,-166,10,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'CASE':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,250,-250,-39,-42,-38,-40,250,-148,-147,-43,-149,250,-41,-167,-166,-164,250,-150,-163,-151,250,-162,-165,-154,250,-152,250,-153,250,250,-158,-157,-155,250,250,-159,-156,250,-161,-160,]),'LAND':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,210,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,210,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,-213,-221,-222,-207,-228,-229,]),'REGISTER':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,59,60,62,63,64,73,75,80,82,83,144,145,146,149,151,185,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[17,17,-61,-72,-71,-58,-54,-55,-33,-29,-59,17,-34,-53,-68,-63,-52,17,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,17,-67,17,-70,-74,17,-57,-82,-249,-81,-107,-30,17,-97,-96,17,-45,-46,17,-109,-36,17,-47,-83,-250,-110,-111,-113,-112,17,17,-98,-37,-39,-42,-38,-40,17,-148,-147,-43,-149,-41,-85,-84,17,17,-100,-99,-167,-166,17,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'MODEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[164,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'NE':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,202,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,202,-194,-192,-196,-200,-195,-191,-198,202,-189,-188,-197,202,-199,202,202,-190,-213,-221,-222,-207,-228,-229,]),'SWITCH':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,252,-250,-39,-42,-38,-40,252,-148,-147,-43,-149,252,-41,-167,-166,-164,252,-150,-163,-151,252,-162,-165,-154,252,-152,252,-153,252,252,-158,-157,-155,252,252,-159,-156,252,-161,-160,]),'INT_CONST_HEX':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,109,-45,-219,109,-217,109,-216,109,-215,109,109,-214,-218,109,109,-250,109,-176,-179,-177,-173,-174,-178,-180,109,-182,-183,-175,-181,109,-215,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,-251,-39,-42,-38,109,-40,109,109,-148,-147,-43,-149,109,-41,109,109,109,-215,109,-12,109,109,-11,-167,-166,109,-164,109,109,-150,109,-163,-151,109,109,109,109,-251,109,-215,-251,-131,-162,-165,109,-154,109,-152,109,109,109,-153,109,109,109,-251,109,-158,-157,-155,109,109,109,-159,-156,109,-161,-160,]),'_COMPLEX':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[27,27,-61,-72,-71,-58,-54,-55,-33,-29,-59,27,-34,-53,-68,-63,-52,27,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,27,-67,27,-70,-74,27,-57,-82,-249,-81,27,-107,-30,27,-97,-96,27,-45,-46,27,-109,27,27,27,27,-88,27,27,-36,27,-47,27,27,-83,-89,-250,27,-110,27,27,-111,-113,-112,27,27,-98,-37,-39,-42,-38,-40,27,-148,-147,-43,-149,-41,-85,-84,-90,27,27,-100,-99,-167,-166,27,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'PLUSEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[167,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'STRUCT':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[34,34,-61,-72,-71,-58,-54,-55,-33,-29,-59,34,-34,-53,-68,-63,-52,34,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,34,-67,34,-70,-74,34,-57,-82,-249,-81,34,-107,-30,34,-97,-96,34,-45,-46,34,-109,34,34,34,34,-88,34,34,-36,34,-47,34,34,-83,-89,-250,34,-110,34,34,-111,-113,-112,34,34,-98,-37,-39,-42,-38,-40,34,-148,-147,-43,-149,-41,-85,-84,-90,34,34,-100,-99,-167,-166,34,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'CONDOP':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,213,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,-213,-221,-222,-207,-228,-229,]),'BREAK':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,256,-250,-39,-42,-38,-40,256,-148,-147,-43,-149,256,-41,-167,-166,-164,256,-150,-163,-151,256,-162,-165,-154,256,-152,256,-153,256,256,-158,-157,-155,256,256,-159,-156,256,-161,-160,]),'VOLATILE':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,28,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,66,68,73,75,80,82,83,84,85,86,87,88,89,112,139,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[46,46,-61,-72,-71,-58,-54,-55,-33,-29,-59,46,-34,-53,-68,-63,-52,46,-56,-170,-106,-66,46,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,46,-67,46,-70,-74,46,-57,-82,-249,-81,46,-107,-30,46,-97,-96,-116,46,46,-45,-46,46,-109,46,46,46,46,-88,46,46,-117,-36,46,-47,46,46,-83,-89,-250,46,-110,46,46,-111,-113,-112,46,46,-98,-37,-39,-42,-38,-40,46,-148,-147,-43,-149,-41,-85,-84,-90,46,46,-100,-99,-167,-166,46,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'INLINE':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,59,60,62,63,64,73,75,80,82,83,144,145,146,149,151,185,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[49,49,-61,-72,-71,-58,-54,-55,-33,-29,-59,49,-34,-53,-68,-63,-52,49,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,49,-67,49,-70,-74,49,-57,-82,-249,-81,-107,-30,49,-97,-96,49,-45,-46,49,-109,-36,49,-47,-83,-250,-110,-111,-113,-112,49,49,-98,-37,-39,-42,-38,-40,49,-148,-147,-43,-149,-41,-85,-84,49,49,-100,-99,-167,-166,49,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'DO':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,259,-250,-39,-42,-38,-40,259,-148,-147,-43,-149,259,-41,-167,-166,-164,259,-150,-163,-151,259,-162,-165,-154,259,-152,259,-153,259,259,-158,-157,-155,259,259,-159,-156,259,-161,-160,]),'LNOT':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,91,-45,-219,91,-217,91,-216,91,-215,91,91,-214,-218,91,91,-250,91,-176,-179,-177,-173,-174,-178,-180,91,-182,-183,-175,-181,91,-215,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,-251,-39,-42,-38,91,-40,91,91,-148,-147,-43,-149,91,-41,91,91,91,-215,91,-12,91,91,-11,-167,-166,91,-164,91,91,-150,91,-163,-151,91,91,91,91,-251,91,-215,-251,-131,-162,-165,91,-154,91,-152,91,91,91,-153,91,91,91,-251,91,-158,-157,-155,91,91,91,-159,-156,91,-161,-160,]),'CONST':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,28,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,66,68,73,75,80,82,83,84,85,86,87,88,89,112,139,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[3,3,-61,-72,-71,-58,-54,-55,-33,-29,-59,3,-34,-53,-68,-63,-52,3,-56,-170,-106,-66,3,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,3,-67,3,-70,-74,3,-57,-82,-249,-81,3,-107,-30,3,-97,-96,-116,3,3,-45,-46,3,-109,3,3,3,3,-88,3,3,-117,-36,3,-47,3,3,-83,-89,-250,3,-110,3,3,-111,-113,-112,3,3,-98,-37,-39,-42,-38,-40,3,-148,-147,-43,-149,-41,-85,-84,-90,3,3,-100,-99,-167,-166,3,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'LOR':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,198,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,-213,-221,-222,-207,-228,-229,]),'CHAR_CONST':([55,61,75,91,99,100,105,106,108,110,112,113,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,94,-45,-219,94,-217,94,-216,94,-215,94,94,-214,-218,94,94,-250,94,-176,-179,-177,-173,-174,-178,-180,94,-182,-183,-175,-181,94,-215,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,-251,-39,-42,-38,94,-40,94,94,-148,-147,-43,-149,94,-41,94,94,94,-215,94,-12,94,94,-11,-167,-166,94,-164,94,94,-150,94,-163,-151,94,94,94,94,-251,94,-215,-251,-131,-162,-165,94,-154,94,-152,94,94,94,-153,94,94,94,-251,94,-158,-157,-155,94,94,94,-159,-156,94,-161,-160,]),'LSHIFT':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,199,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,199,-194,-192,199,199,199,-191,199,199,-189,-188,199,199,199,199,199,-190,-213,-221,-222,-207,-228,-229,]),'RBRACE':([55,75,86,88,92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,122,124,135,136,137,145,147,148,150,151,174,176,178,180,184,187,188,190,196,228,229,230,236,238,239,242,244,251,253,254,255,257,258,260,261,267,269,271,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,320,321,328,331,332,335,340,342,344,349,350,351,356,368,369,370,373,374,377,382,385,386,392,396,400,401,402,405,406,408,409,416,417,419,420,],[-249,-45,151,-88,-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,-185,-242,-239,-171,-230,-101,151,-104,-251,151,151,-89,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,151,151,-102,-126,-39,-42,-38,-40,-6,-148,-147,-43,-149,-5,-41,151,-184,-90,-172,-225,-224,-223,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,-103,-105,151,-167,-166,-164,-150,-163,-151,-213,-221,-222,-207,-129,151,-127,-162,-165,-154,-152,151,-186,-128,-153,151,-228,-130,-158,-157,-155,-229,-159,-156,-161,-160,]),'_BOOL':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[13,13,-61,-72,-71,-58,-54,-55,-33,-29,-59,13,-34,-53,-68,-63,-52,13,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,13,-67,13,-70,-74,13,-57,-82,-249,-81,13,-107,-30,13,-97,-96,13,-45,-46,13,-109,13,13,13,13,-88,13,13,-36,13,-47,13,13,-83,-89,-250,13,-110,13,13,-111,-113,-112,13,13,-98,-37,-39,-42,-38,-40,13,-148,-147,-43,-149,-41,-85,-84,-90,13,13,-100,-99,-167,-166,13,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'LE':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,201,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,201,-194,-192,-196,201,-195,-191,-198,201,-189,-188,-197,201,201,201,201,-190,-213,-221,-222,-207,-228,-229,]),'SEMI':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,30,31,32,33,35,36,37,38,39,40,41,42,43,44,45,46,49,50,51,52,54,55,56,58,59,60,63,64,70,71,72,73,74,75,76,77,79,83,87,89,90,92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,122,124,143,144,145,149,151,152,153,154,155,157,158,159,160,161,174,176,178,180,184,185,187,188,190,191,194,196,216,217,231,233,234,236,237,238,239,241,242,243,244,246,247,251,253,254,255,256,257,258,259,260,262,264,265,266,267,271,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,318,319,330,331,332,333,334,335,336,339,340,342,344,345,347,348,349,350,351,355,356,370,373,374,375,376,377,379,382,386,392,393,394,395,396,397,399,401,403,405,406,408,409,412,413,415,416,417,418,419,420,],[15,-251,-61,-72,-71,-58,-54,-55,-33,-29,-59,-251,-34,-53,-68,-63,-52,15,-56,-170,-106,-66,-69,-251,-32,-73,-108,-64,-31,-60,-35,-62,-65,75,-251,-67,-251,-70,-74,-57,-50,-9,-10,-82,-249,-81,-49,-107,-30,-97,-96,-18,-44,-17,-77,-75,-45,-48,-51,-251,-109,-251,-251,-251,-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,-185,-242,-239,-171,-230,-77,-36,-251,-83,-250,-21,-80,-22,-79,-24,269,-91,-23,-93,-248,-212,-246,-226,-227,-110,-206,-211,-209,-111,-168,-210,-113,-112,-98,-76,-78,-126,-37,-39,-42,331,-38,332,-40,335,-14,-251,-148,-147,-43,342,-149,-13,-251,-41,-237,-85,-84,-95,-184,-172,-225,-224,-223,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,-100,-99,373,-167,-166,374,-251,-164,-251,-13,-150,-163,-151,-251,-92,-94,-213,-221,-222,-169,-207,-127,-162,-165,393,-251,-154,-251,-152,-186,-128,-251,404,-251,-153,-251,-251,-228,410,-158,-157,-155,-229,416,-251,-251,-159,-156,-251,-161,-160,]),'LT':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,203,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,203,-194,-192,-196,203,-195,-191,-198,203,-189,-188,-197,203,203,203,203,-190,-213,-221,-222,-207,-228,-229,]),'COMMA':([1,2,3,5,6,9,10,13,14,17,18,19,21,23,24,25,27,28,29,32,33,35,37,39,40,42,43,44,45,46,49,50,51,52,54,56,58,59,63,64,66,67,68,69,70,73,74,76,77,83,92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,122,124,128,129,130,131,132,135,136,137,138,139,143,149,151,157,159,161,174,176,178,180,184,185,187,188,190,191,192,194,196,216,217,219,220,222,223,224,225,228,229,230,231,233,234,236,247,262,264,265,266,267,271,273,274,275,276,277,278,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,314,315,317,318,319,320,321,328,333,347,348,349,350,351,355,356,359,360,361,362,368,370,378,380,383,384,385,386,387,388,389,392,401,402,407,409,],[-251,-61,-72,-71,-58,-54,-55,-59,-251,-53,-68,-63,-52,-56,-170,-106,-66,-251,-69,-73,-108,-64,-60,-62,-65,-251,-67,-251,-70,-74,-57,-50,-9,-10,-82,-81,-49,-107,-97,-96,-116,-114,-26,-25,140,-77,-75,-48,-51,-109,-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,-185,-242,-239,-171,-230,-120,-251,226,227,-124,-101,230,-104,-115,-117,-77,-83,-250,268,-91,-93,-248,-212,-246,-226,-227,-110,-206,-211,-209,-111,282,-168,-210,-113,-112,-123,-2,-122,-139,-137,-1,230,230,-102,-98,-76,-78,-126,282,-237,-85,-84,-95,-184,-172,-225,-224,282,-235,-223,352,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,282,-202,-190,-138,-125,-121,-100,-99,-103,-105,369,282,-92,-94,-213,-221,-222,-169,-207,-146,-140,-142,-144,-129,-127,282,282,282,-236,400,-186,-141,-143,-145,-128,-228,-130,282,-229,]),'TYPEDEF':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,59,60,62,63,64,73,75,80,82,83,144,145,146,149,151,185,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[23,23,-61,-72,-71,-58,-54,-55,-33,-29,-59,23,-34,-53,-68,-63,-52,23,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,23,-67,23,-70,-74,23,-57,-82,-249,-81,-107,-30,23,-97,-96,23,-45,-46,23,-109,-36,23,-47,-83,-250,-110,-111,-113,-112,23,23,-98,-37,-39,-42,-38,-40,23,-148,-147,-43,-149,-41,-85,-84,23,23,-100,-99,-167,-166,23,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'XOR':([92,93,94,95,96,97,98,101,102,104,109,111,114,115,117,118,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,349,350,351,356,401,409,],[-206,-233,-243,-247,-244,-241,-231,-232,-208,-187,-240,-220,-237,-245,-238,206,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-193,206,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,206,-199,-201,206,-190,-213,-221,-222,-207,-228,-229,]),'AUTO':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,59,60,62,63,64,73,75,80,82,83,144,145,146,149,151,185,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[21,21,-61,-72,-71,-58,-54,-55,-33,-29,-59,21,-34,-53,-68,-63,-52,21,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,21,-67,21,-70,-74,21,-57,-82,-249,-81,-107,-30,21,-97,-96,21,-45,-46,21,-109,-36,21,-47,-83,-250,-110,-111,-113,-112,21,21,-98,-37,-39,-42,-38,-40,21,-148,-147,-43,-149,-41,-85,-84,21,21,-100,-99,-167,-166,21,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'TIMES':([0,1,2,3,4,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,27,28,29,30,31,32,35,36,37,38,39,40,42,43,44,45,46,49,50,51,52,54,55,56,58,60,61,63,64,66,67,68,69,75,76,77,79,87,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,120,123,124,129,139,140,141,144,145,149,151,152,153,154,155,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,182,183,184,186,187,188,189,190,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,218,221,231,232,235,237,238,239,242,243,244,250,251,253,254,255,257,259,260,262,264,265,268,270,273,274,277,281,282,283,285,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,311,312,318,319,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,349,350,351,352,353,356,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[28,-251,-61,-72,28,-71,-58,-54,-55,-33,-29,-59,-251,-34,-53,-68,-63,-52,28,-56,-170,-66,-251,-69,28,-32,-73,-64,-31,-60,-35,-62,-65,-251,-67,-251,-70,-74,-57,-50,-9,-10,-82,-249,-81,-49,-30,110,-97,-96,-116,28,-26,-25,-45,-48,-51,28,-251,-251,28,-219,-206,-233,-243,-247,-244,-241,-231,177,-217,-232,-208,-187,177,-216,177,-240,-215,-220,177,177,-237,-245,-214,-238,208,-242,-239,-218,-230,28,-117,28,177,-36,177,-83,-250,-21,-80,-22,-79,177,-176,-179,-177,-173,-174,-178,-180,177,-182,-183,-175,-181,-248,177,-212,-215,-246,-226,177,177,-227,177,-206,-211,177,-209,28,-210,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,28,311,-98,177,-251,-37,-39,-42,-38,177,-40,177,177,-148,-147,-43,-149,177,-41,-237,-85,-84,28,177,-225,-224,-223,-234,177,177,28,208,208,208,208,208,208,208,208,208,208,-189,-188,208,208,208,208,208,-190,-215,364,-100,-99,-12,177,177,-11,-167,-166,177,-164,177,177,-150,177,-163,-151,177,177,-213,-221,-222,177,177,-207,-251,177,-215,-251,-131,-162,-165,177,-154,177,-152,177,177,177,-153,177,177,177,-251,-228,177,-158,-157,-155,-229,177,177,177,-159,-156,177,-161,-160,]),'LPAREN':([0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,27,28,29,30,31,32,33,35,36,37,38,39,40,42,43,44,45,46,49,50,51,52,54,55,56,58,59,60,61,63,64,66,67,68,69,75,76,77,79,83,87,89,90,91,93,94,95,96,97,98,99,100,101,102,105,106,108,109,110,111,112,113,114,115,116,117,119,120,123,124,129,138,139,140,141,144,145,149,151,152,153,154,155,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,180,182,183,184,185,186,189,191,195,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,221,223,224,231,232,235,237,238,239,242,243,244,245,249,250,251,252,253,254,255,257,259,260,262,263,264,265,268,270,273,274,277,281,282,283,285,286,311,312,314,318,319,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,350,351,352,353,357,358,359,360,361,362,364,369,372,373,374,376,377,379,381,382,387,388,389,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[4,-251,-61,-72,4,-71,-58,-54,-55,-33,-29,-59,-251,-34,4,-53,-68,-63,-52,4,-56,-170,62,-66,-251,-69,4,-32,-73,-108,-64,-31,-60,-35,-62,-65,-251,-67,-251,-70,-74,-57,-50,-9,-10,-82,-249,-81,-49,62,-30,112,-97,-96,-116,-114,-26,-25,-45,-48,-51,4,-109,-251,-251,4,-219,-233,-243,-247,-244,-241,-231,175,-217,-232,183,186,-216,189,-240,-215,-220,112,189,-237,-245,-214,-238,-242,-239,-218,-230,218,-115,-117,4,112,-36,112,-83,-250,-21,-80,-22,-79,186,-176,-179,-177,-173,-174,-178,-180,112,-182,-183,-175,-181,-248,112,-215,-246,-226,112,112,-227,-110,112,112,-111,285,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,112,186,186,-113,-112,218,112,313,218,-98,186,-251,-37,-39,-42,-38,112,-40,334,337,186,112,341,-148,-147,-43,-149,112,-41,-237,346,-85,-84,4,186,-225,-224,-223,-234,112,186,285,285,-215,112,313,-100,-99,-12,186,112,-11,-167,-166,112,-164,112,112,-150,112,-163,-151,112,112,-221,-222,112,186,-251,186,-146,-140,-142,-144,-215,-251,-131,-162,-165,112,-154,112,398,-152,-141,-143,-145,112,112,112,-153,112,112,112,-251,-228,112,-158,-157,-155,-229,112,112,112,-159,-156,112,-161,-160,]),'MINUSMINUS':([55,61,75,91,93,94,95,96,97,98,99,100,101,102,105,106,108,109,110,111,112,113,114,115,116,117,119,120,123,124,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,180,182,183,184,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,262,270,273,274,277,281,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,350,351,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,401,404,405,406,408,409,410,413,415,416,417,418,419,420,],[-249,113,-45,-219,-233,-243,-247,-244,-241,-231,113,-217,-232,184,113,-216,113,-240,-215,-220,113,113,-237,-245,-214,-238,-242,-239,-218,-230,113,113,-250,113,-176,-179,-177,-173,-174,-178,-180,113,-182,-183,-175,-181,-248,113,-215,-246,-226,113,113,-227,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,-251,-39,-42,-38,113,-40,113,113,-148,-147,-43,-149,113,-41,-237,113,-225,-224,-223,-234,113,113,-215,113,-12,113,113,-11,-167,-166,113,-164,113,113,-150,113,-163,-151,113,113,-221,-222,113,113,-251,113,-215,-251,-131,-162,-165,113,-154,113,-152,113,113,113,-153,113,113,113,-251,-228,113,-158,-157,-155,-229,113,113,113,-159,-156,113,-161,-160,]),'ID':([0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,34,35,36,37,38,39,40,42,43,44,45,46,49,50,51,52,54,55,56,58,60,61,62,63,64,65,66,67,68,69,75,76,77,79,87,89,90,91,99,100,105,106,108,110,112,113,116,123,129,133,134,138,139,140,141,144,145,149,151,152,153,154,155,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,179,181,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,218,221,224,226,230,231,232,235,237,238,239,240,242,243,244,250,251,253,254,255,257,259,260,264,265,268,270,282,283,311,312,318,319,322,324,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[33,-251,-61,-72,33,-71,-58,56,-54,-55,-33,-29,-59,-251,-34,33,-53,-68,-63,-87,-52,33,-56,-170,64,-66,-251,-69,33,-32,-73,-86,-64,-31,-60,-35,-62,-65,-251,-67,-251,-70,-74,-57,-50,-9,-10,-82,-249,-81,-49,-30,114,114,-97,-96,137,-116,-114,-26,-25,-45,-48,-51,33,-251,-251,33,-219,114,-217,114,-216,114,-215,114,114,-214,-218,33,137,137,-115,-117,33,114,-36,262,-83,-250,-21,-80,-22,-79,114,-176,-179,-177,-173,-174,-178,-180,114,-182,-183,-175,-181,114,-215,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,33,114,33,114,137,-98,114,-251,-37,-39,-42,330,-38,114,-40,114,262,-148,-147,-43,-149,262,-41,-85,-84,33,114,114,114,-215,114,-100,-99,-12,114,114,114,-11,-167,-166,114,-164,262,114,-150,114,-163,-151,262,114,114,114,-251,114,-215,-251,-131,-162,-165,114,-154,262,-152,114,114,262,-153,262,114,262,-251,114,-158,-157,-155,114,262,262,-159,-156,262,-161,-160,]),'IF':([55,75,145,151,238,239,242,244,251,253,254,255,257,259,260,331,332,335,336,340,342,344,345,373,374,377,379,382,395,396,397,399,405,406,408,413,415,416,417,418,419,420,],[-249,-45,263,-250,-39,-42,-38,-40,263,-148,-147,-43,-149,263,-41,-167,-166,-164,263,-150,-163,-151,263,-162,-165,-154,263,-152,263,-153,263,263,-158,-157,-155,263,263,-159,-156,263,-161,-160,]),'STRING_LITERAL':([55,61,75,91,99,100,101,105,106,108,110,112,113,115,116,123,141,145,151,156,162,163,164,165,166,167,168,169,170,171,172,173,175,177,178,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,235,238,239,242,243,244,250,251,253,254,255,257,259,260,270,282,283,311,312,322,325,326,327,331,332,334,335,336,337,340,341,342,344,345,346,352,353,357,358,364,369,372,373,374,376,377,379,382,391,393,395,396,397,398,399,400,404,405,406,408,410,413,415,416,417,418,419,420,],[-249,115,-45,-219,115,-217,178,115,-216,115,-215,115,115,-245,-214,-218,115,115,-250,115,-176,-179,-177,-173,-174,-178,-180,115,-182,-183,-175,-181,115,-215,-246,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,-251,-39,-42,-38,115,-40,115,115,-148,-147,-43,-149,115,-41,115,115,115,-215,115,-12,115,115,-11,-167,-166,115,-164,115,115,-150,115,-163,-151,115,115,115,115,-251,115,-215,-251,-131,-162,-165,115,-154,115,-152,115,115,115,-153,115,115,115,-251,115,-158,-157,-155,115,115,115,-159,-156,115,-161,-160,]),'FLOAT':([0,1,2,3,5,6,9,10,11,12,13,14,15,17,18,19,21,22,23,24,25,27,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,48,49,54,55,56,57,59,60,62,63,64,73,75,80,82,83,84,85,86,87,88,89,112,144,145,146,147,148,149,150,151,175,185,186,189,191,216,217,218,227,231,237,238,239,242,244,251,253,254,255,257,260,264,265,269,285,313,318,319,331,332,334,335,340,342,344,373,374,377,382,396,405,406,408,416,417,419,420,],[35,35,-61,-72,-71,-58,-54,-55,-33,-29,-59,35,-34,-53,-68,-63,-52,35,-56,-170,-106,-66,-69,-32,-73,-108,-64,-31,-60,-35,-62,-65,35,-67,35,-70,-74,35,-57,-82,-249,-81,35,-107,-30,35,-97,-96,35,-45,-46,35,-109,35,35,35,35,-88,35,35,-36,35,-47,35,35,-83,-89,-250,35,-110,35,35,-111,-113,-112,35,35,-98,-37,-39,-42,-38,-40,35,-148,-147,-43,-149,-41,-85,-84,-90,35,35,-100,-99,-167,-166,35,-164,-150,-163,-151,-162,-165,-154,-152,-153,-158,-157,-155,-159,-156,-161,-160,]),'XOREQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[166,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'LSHIFTEQUAL':([92,93,94,95,96,97,98,101,102,109,111,114,115,117,119,120,124,151,174,176,178,180,184,187,188,190,196,262,273,274,277,281,349,350,351,356,401,409,],[168,-233,-243,-247,-244,-241,-231,-232,-208,-240,-220,-237,-245,-238,-242,-239,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-210,-237,-225,-224,-223,-234,-213,-221,-222,-207,-228,-229,]),'RBRACKET':([61,92,93,94,95,96,97,98,101,102,103,104,107,109,110,111,114,115,117,118,119,120,121,122,124,151,174,176,178,180,184,187,188,190,194,196,221,267,271,273,274,275,277,281,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,304,305,310,311,312,349,350,351,355,356,363,364,367,386,401,409,],[-251,-206,-233,-243,-247,-244,-241,-231,-232,-208,185,-187,-4,-240,191,-220,-237,-245,-238,-185,-242,-239,-3,-171,-230,-250,-248,-212,-246,-226,-227,-206,-211,-209,-168,-210,-251,-184,-172,-225,-224,350,-223,-234,-193,-205,-194,-192,-196,-200,-195,-191,-198,-203,-189,-188,-197,-204,-199,-201,-202,-190,361,362,-251,-213,-221,-222,-169,-207,387,388,390,-186,-228,-229,]),}
-
-_lr_action = { }
-for _k, _v in _lr_action_items.items():
-   for _x,_y in zip(_v[0],_v[1]):
-      if not _x in _lr_action:  _lr_action[_x] = { }
-      _lr_action[_x][_k] = _y
-del _lr_action_items
-
-_lr_goto_items = {'storage_class_specifier':([0,1,14,22,42,44,48,62,73,82,145,218,227,251,285,313,334,],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,]),'identifier_list_opt':([62,],[125,]),'selection_statement':([145,251,259,336,345,379,395,397,399,413,415,418,],[260,260,260,260,260,260,260,260,260,260,260,260,]),'constant':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,]),'unary_expression':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[92,176,187,190,92,196,92,92,187,92,92,92,92,92,92,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,92,187,187,92,187,92,187,92,92,187,92,187,92,187,92,92,92,92,92,92,92,92,187,187,92,92,92,92,92,92,92,92,92,92,92,92,92,]),'conditional_expression':([61,112,141,145,156,169,175,182,183,186,189,213,221,232,243,250,251,259,270,282,312,325,326,334,336,337,341,345,346,352,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[122,122,122,122,267,122,122,122,122,122,122,122,122,267,122,267,122,122,267,122,122,267,122,122,122,122,122,122,122,122,386,122,122,122,122,122,122,122,122,122,122,122,122,122,]),'brace_close':([86,136,147,148,228,229,261,328,369,385,400,],[149,231,264,265,318,319,344,370,392,401,409,]),'struct_or_union_specifier':([0,1,14,22,42,44,48,57,62,73,82,84,85,86,87,89,112,145,147,148,175,186,189,218,227,251,285,313,334,],[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,]),'unified_wstring_literal':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,]),'abstract_declarator_opt':([129,195,],[219,284,]),'iteration_statement':([145,251,259,336,345,379,395,397,399,413,415,418,],[239,239,239,239,239,239,239,239,239,239,239,239,]),'init_declarator_list':([30,79,],[70,70,]),'translation_unit_or_empty':([0,],[8,]),'struct_declaration_list':([57,84,85,],[86,147,148,]),'enumerator':([65,133,134,230,],[135,135,135,320,]),'pp_directive':([0,22,],[11,11,]),'declaration_list':([48,73,],[82,82,]),'declaration_specifiers_opt':([1,14,42,44,],[50,58,76,77,]),'abstract_declarator':([129,195,218,285,],[220,220,309,309,]),'external_declaration':([0,22,],[12,60,]),'type_specifier':([0,1,14,22,42,44,48,57,62,73,82,84,85,86,87,89,112,145,147,148,175,186,189,218,227,251,285,313,334,],[14,14,14,14,14,14,14,87,14,14,14,87,87,87,87,87,87,14,87,87,87,87,87,14,14,14,14,14,14,]),'designation':([235,357,369,400,],[322,322,322,322,]),'compound_statement':([81,142,145,251,259,336,345,379,395,397,399,413,415,418,],[144,237,244,244,244,244,244,244,244,244,244,244,244,244,]),'pointer':([0,4,22,30,67,79,90,129,140,195,218,268,285,],[16,16,16,16,138,16,16,224,16,286,224,16,286,]),'type_name':([112,175,186,189,],[193,272,279,280,]),'unified_string_literal':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,]),'postfix_expression':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,]),'assignment_expression_opt':([61,221,312,],[103,310,363,]),'designation_opt':([235,357,369,400,],[326,326,391,391,]),'expression_statement':([145,251,259,336,345,379,395,397,399,413,415,418,],[238,238,238,238,238,238,238,238,238,238,238,238,]),'unary_operator':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,]),'cast_expression':([61,105,112,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[104,188,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,356,104,104,104,104,104,104,104,104,104,104,356,104,104,104,104,104,104,104,104,104,104,104,104,104,104,]),'brace_open':([7,26,54,56,63,64,81,141,142,145,251,259,283,326,336,345,349,353,354,379,391,395,397,399,413,415,418,],[57,65,84,85,133,134,145,235,145,145,145,145,357,235,145,145,357,357,357,145,235,145,145,145,145,145,145,]),'init_declarator':([30,79,140,],[74,74,233,]),'translation_unit':([0,],[22,]),'assignment_operator':([92,],[169,]),'struct_or_union':([0,1,14,22,42,44,48,57,62,73,82,84,85,86,87,89,112,145,147,148,175,186,189,218,227,251,285,313,334,],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,]),'block_item_list_opt':([145,],[261,]),'struct_declaration':([57,84,85,86,147,148,],[88,88,88,150,150,150,]),'assignment_expression':([61,112,141,145,169,175,182,183,186,189,213,221,243,251,259,282,312,326,334,336,337,341,345,346,352,376,379,391,393,395,397,398,399,404,410,413,415,418,],[107,194,236,194,271,194,194,276,194,194,194,107,194,194,194,355,107,236,194,194,194,194,194,194,384,194,194,236,194,194,194,194,194,194,194,194,194,194,]),'parameter_type_list':([62,218,285,313,],[127,307,307,307,]),'type_qualifier_list_opt':([28,],[67,]),'direct_declarator':([0,4,16,22,30,79,90,129,140,218,224,268,],[25,25,59,25,25,25,25,25,25,25,59,25,]),'type_qualifier_list':([28,],[68,]),'designator':([235,329,357,369,400,],[323,371,323,323,323,]),'argument_expression_list':([183,],[278,]),'initializer':([141,326,391,],[234,368,402,]),'direct_abstract_declarator':([129,195,218,224,285,286,],[223,223,223,314,223,314,]),'specifier_qualifier_list_opt':([87,89,],[153,155,]),'constant_expression':([156,232,250,270,325,],[266,321,338,348,367,]),'expression_opt':([145,251,259,334,336,345,376,379,393,395,397,399,404,410,413,415,418,],[241,241,241,375,241,241,394,241,403,241,241,241,411,414,241,241,241,]),'primary_expression':([61,99,105,108,112,113,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,283,312,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,]),'declaration_specifiers':([0,1,14,22,42,44,48,62,73,82,145,218,227,251,285,313,334,],[30,52,52,30,52,52,79,129,79,79,79,129,129,79,129,129,79,]),'declaration':([0,22,48,73,82,145,251,334,],[31,31,80,80,146,254,254,376,]),'struct_declarator_list_opt':([90,],[158,]),'identifier_list':([62,],[130,]),'typedef_name':([0,1,14,22,42,44,48,57,62,73,82,84,85,86,87,89,112,145,147,148,175,186,189,218,227,251,285,313,334,],[29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,]),'parameter_type_list_opt':([218,285,313,],[308,308,365,]),'jump_statement':([145,251,259,336,345,379,395,397,399,413,415,418,],[255,255,255,255,255,255,255,255,255,255,255,255,]),'declaration_list_opt':([48,73,],[81,142,]),'struct_declarator':([90,268,],[159,347,]),'function_definition':([0,22,],[36,36,]),'binary_expression':([61,112,141,145,156,169,175,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,232,243,250,251,259,270,282,312,325,326,334,336,337,341,345,346,352,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[118,118,118,118,118,118,118,118,118,118,118,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,118,304,305,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,]),'parameter_list':([62,218,285,313,],[131,131,131,131,]),'init_declarator_list_opt':([30,79,],[71,71,]),'enum_specifier':([0,1,14,22,42,44,48,57,62,73,82,84,85,86,87,89,112,145,147,148,175,186,189,218,227,251,285,313,334,],[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,]),'struct_declarator_list':([90,],[157,]),'decl_body':([0,22,48,73,82,145,251,334,],[41,41,41,41,41,41,41,41,]),'type_qualifier':([0,1,14,22,28,42,44,48,57,62,68,73,82,84,85,86,87,89,112,145,147,148,175,186,189,218,227,251,285,313,334,],[42,42,42,42,66,42,42,42,89,42,139,42,42,89,89,89,89,89,89,42,89,89,89,89,89,42,42,42,42,42,42,]),'enumerator_list':([65,133,134,],[136,228,229,]),'labeled_statement':([145,251,259,336,345,379,395,397,399,413,415,418,],[242,242,242,242,242,242,242,242,242,242,242,242,]),'function_specifier':([0,1,14,22,42,44,48,62,73,82,145,218,227,251,285,313,334,],[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,]),'specifier_qualifier_list':([57,84,85,86,87,89,112,147,148,175,186,189,],[90,90,90,90,154,154,195,90,90,195,195,195,]),'block_item':([145,251,],[257,340,]),'block_item_list':([145,],[251,]),'statement':([145,251,259,336,345,379,395,397,399,413,415,418,],[253,253,343,377,382,396,405,406,408,417,419,420,]),'empty':([0,1,14,28,30,42,44,48,61,62,73,79,87,89,90,129,145,195,218,221,235,251,259,285,312,313,334,336,345,357,369,376,379,393,395,397,399,400,404,410,413,415,418,],[47,51,51,69,72,51,51,78,121,126,78,72,152,152,160,225,258,225,306,121,327,339,339,306,121,306,339,339,339,327,327,339,339,339,339,339,339,327,339,339,339,339,339,]),'initializer_list':([235,357,],[328,385,]),'declarator':([0,4,22,30,79,90,129,140,218,268,],[48,53,48,73,143,161,222,143,53,161,]),'parameter_declaration':([62,218,227,285,313,],[128,128,317,128,128,]),'designator_list':([235,357,369,400,],[329,329,329,329,]),'identifier':([61,62,99,105,108,112,113,141,145,156,169,175,179,181,182,183,186,189,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221,226,232,243,250,251,259,270,282,283,312,324,325,326,334,336,337,341,345,346,352,353,358,376,379,391,393,395,397,398,399,404,410,413,415,418,],[124,132,124,124,124,124,124,124,124,124,124,124,273,274,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,315,124,124,124,124,124,124,124,124,124,366,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,]),'expression':([112,145,175,182,186,189,213,243,251,259,334,336,337,341,345,346,376,379,393,395,397,398,399,404,410,413,415,418,],[192,247,192,275,192,192,303,333,247,247,247,247,378,380,247,383,247,247,247,247,247,407,247,247,247,247,247,247,]),}
-
-_lr_goto = { }
-for _k, _v in _lr_goto_items.items():
-   for _x,_y in zip(_v[0],_v[1]):
-       if not _x in _lr_goto: _lr_goto[_x] = { }
-       _lr_goto[_x][_k] = _y
-del _lr_goto_items
-_lr_productions = [
-  ("S' -> translation_unit_or_empty","S'",1,None,None,None),
-  ('abstract_declarator_opt -> empty','abstract_declarator_opt',1,'p_abstract_declarator_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('abstract_declarator_opt -> abstract_declarator','abstract_declarator_opt',1,'p_abstract_declarator_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('assignment_expression_opt -> empty','assignment_expression_opt',1,'p_assignment_expression_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('assignment_expression_opt -> assignment_expression','assignment_expression_opt',1,'p_assignment_expression_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('block_item_list_opt -> empty','block_item_list_opt',1,'p_block_item_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('block_item_list_opt -> block_item_list','block_item_list_opt',1,'p_block_item_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('declaration_list_opt -> empty','declaration_list_opt',1,'p_declaration_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('declaration_list_opt -> declaration_list','declaration_list_opt',1,'p_declaration_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('declaration_specifiers_opt -> empty','declaration_specifiers_opt',1,'p_declaration_specifiers_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('declaration_specifiers_opt -> declaration_specifiers','declaration_specifiers_opt',1,'p_declaration_specifiers_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('designation_opt -> empty','designation_opt',1,'p_designation_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('designation_opt -> designation','designation_opt',1,'p_designation_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('expression_opt -> empty','expression_opt',1,'p_expression_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('expression_opt -> expression','expression_opt',1,'p_expression_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('identifier_list_opt -> empty','identifier_list_opt',1,'p_identifier_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('identifier_list_opt -> identifier_list','identifier_list_opt',1,'p_identifier_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('init_declarator_list_opt -> empty','init_declarator_list_opt',1,'p_init_declarator_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('init_declarator_list_opt -> init_declarator_list','init_declarator_list_opt',1,'p_init_declarator_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('parameter_type_list_opt -> empty','parameter_type_list_opt',1,'p_parameter_type_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('parameter_type_list_opt -> parameter_type_list','parameter_type_list_opt',1,'p_parameter_type_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('specifier_qualifier_list_opt -> empty','specifier_qualifier_list_opt',1,'p_specifier_qualifier_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('specifier_qualifier_list_opt -> specifier_qualifier_list','specifier_qualifier_list_opt',1,'p_specifier_qualifier_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('struct_declarator_list_opt -> empty','struct_declarator_list_opt',1,'p_struct_declarator_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('struct_declarator_list_opt -> struct_declarator_list','struct_declarator_list_opt',1,'p_struct_declarator_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('type_qualifier_list_opt -> empty','type_qualifier_list_opt',1,'p_type_qualifier_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',41),
-  ('type_qualifier_list_opt -> type_qualifier_list','type_qualifier_list_opt',1,'p_type_qualifier_list_opt','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/plyparser.py',42),
-  ('translation_unit_or_empty -> translation_unit','translation_unit_or_empty',1,'p_translation_unit_or_empty','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',355),
-  ('translation_unit_or_empty -> empty','translation_unit_or_empty',1,'p_translation_unit_or_empty','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',356),
-  ('translation_unit -> external_declaration','translation_unit',1,'p_translation_unit_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',364),
-  ('translation_unit -> translation_unit external_declaration','translation_unit',2,'p_translation_unit_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',371),
-  ('external_declaration -> function_definition','external_declaration',1,'p_external_declaration_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',383),
-  ('external_declaration -> declaration','external_declaration',1,'p_external_declaration_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',388),
-  ('external_declaration -> pp_directive','external_declaration',1,'p_external_declaration_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',393),
-  ('external_declaration -> SEMI','external_declaration',1,'p_external_declaration_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',398),
-  ('pp_directive -> PPHASH','pp_directive',1,'p_pp_directive','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',403),
-  ('function_definition -> declarator declaration_list_opt compound_statement','function_definition',3,'p_function_definition_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',412),
-  ('function_definition -> declaration_specifiers declarator declaration_list_opt compound_statement','function_definition',4,'p_function_definition_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',424),
-  ('statement -> labeled_statement','statement',1,'p_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',435),
-  ('statement -> expression_statement','statement',1,'p_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',436),
-  ('statement -> compound_statement','statement',1,'p_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',437),
-  ('statement -> selection_statement','statement',1,'p_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',438),
-  ('statement -> iteration_statement','statement',1,'p_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',439),
-  ('statement -> jump_statement','statement',1,'p_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',440),
-  ('decl_body -> declaration_specifiers init_declarator_list_opt','decl_body',2,'p_decl_body','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',454),
-  ('declaration -> decl_body SEMI','declaration',2,'p_declaration','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',537),
-  ('declaration_list -> declaration','declaration_list',1,'p_declaration_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',546),
-  ('declaration_list -> declaration_list declaration','declaration_list',2,'p_declaration_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',547),
-  ('declaration_specifiers -> type_qualifier declaration_specifiers_opt','declaration_specifiers',2,'p_declaration_specifiers_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',552),
-  ('declaration_specifiers -> type_specifier declaration_specifiers_opt','declaration_specifiers',2,'p_declaration_specifiers_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',557),
-  ('declaration_specifiers -> storage_class_specifier declaration_specifiers_opt','declaration_specifiers',2,'p_declaration_specifiers_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',562),
-  ('declaration_specifiers -> function_specifier declaration_specifiers_opt','declaration_specifiers',2,'p_declaration_specifiers_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',567),
-  ('storage_class_specifier -> AUTO','storage_class_specifier',1,'p_storage_class_specifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',572),
-  ('storage_class_specifier -> REGISTER','storage_class_specifier',1,'p_storage_class_specifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',573),
-  ('storage_class_specifier -> STATIC','storage_class_specifier',1,'p_storage_class_specifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',574),
-  ('storage_class_specifier -> EXTERN','storage_class_specifier',1,'p_storage_class_specifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',575),
-  ('storage_class_specifier -> TYPEDEF','storage_class_specifier',1,'p_storage_class_specifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',576),
-  ('function_specifier -> INLINE','function_specifier',1,'p_function_specifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',581),
-  ('type_specifier -> VOID','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',586),
-  ('type_specifier -> _BOOL','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',587),
-  ('type_specifier -> CHAR','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',588),
-  ('type_specifier -> SHORT','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',589),
-  ('type_specifier -> INT','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',590),
-  ('type_specifier -> LONG','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',591),
-  ('type_specifier -> FLOAT','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',592),
-  ('type_specifier -> DOUBLE','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',593),
-  ('type_specifier -> _COMPLEX','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',594),
-  ('type_specifier -> SIGNED','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',595),
-  ('type_specifier -> UNSIGNED','type_specifier',1,'p_type_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',596),
-  ('type_specifier -> typedef_name','type_specifier',1,'p_type_specifier_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',601),
-  ('type_specifier -> enum_specifier','type_specifier',1,'p_type_specifier_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',602),
-  ('type_specifier -> struct_or_union_specifier','type_specifier',1,'p_type_specifier_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',603),
-  ('type_qualifier -> CONST','type_qualifier',1,'p_type_qualifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',608),
-  ('type_qualifier -> RESTRICT','type_qualifier',1,'p_type_qualifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',609),
-  ('type_qualifier -> VOLATILE','type_qualifier',1,'p_type_qualifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',610),
-  ('init_declarator_list -> init_declarator','init_declarator_list',1,'p_init_declarator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',615),
-  ('init_declarator_list -> init_declarator_list COMMA init_declarator','init_declarator_list',3,'p_init_declarator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',616),
-  ('init_declarator -> declarator','init_declarator',1,'p_init_declarator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',624),
-  ('init_declarator -> declarator EQUALS initializer','init_declarator',3,'p_init_declarator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',625),
-  ('specifier_qualifier_list -> type_qualifier specifier_qualifier_list_opt','specifier_qualifier_list',2,'p_specifier_qualifier_list_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',630),
-  ('specifier_qualifier_list -> type_specifier specifier_qualifier_list_opt','specifier_qualifier_list',2,'p_specifier_qualifier_list_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',635),
-  ('struct_or_union_specifier -> struct_or_union ID','struct_or_union_specifier',2,'p_struct_or_union_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',643),
-  ('struct_or_union_specifier -> struct_or_union TYPEID','struct_or_union_specifier',2,'p_struct_or_union_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',644),
-  ('struct_or_union_specifier -> struct_or_union brace_open struct_declaration_list brace_close','struct_or_union_specifier',4,'p_struct_or_union_specifier_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',653),
-  ('struct_or_union_specifier -> struct_or_union ID brace_open struct_declaration_list brace_close','struct_or_union_specifier',5,'p_struct_or_union_specifier_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',662),
-  ('struct_or_union_specifier -> struct_or_union TYPEID brace_open struct_declaration_list brace_close','struct_or_union_specifier',5,'p_struct_or_union_specifier_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',663),
-  ('struct_or_union -> STRUCT','struct_or_union',1,'p_struct_or_union','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',672),
-  ('struct_or_union -> UNION','struct_or_union',1,'p_struct_or_union','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',673),
-  ('struct_declaration_list -> struct_declaration','struct_declaration_list',1,'p_struct_declaration_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',680),
-  ('struct_declaration_list -> struct_declaration_list struct_declaration','struct_declaration_list',2,'p_struct_declaration_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',681),
-  ('struct_declaration -> specifier_qualifier_list struct_declarator_list_opt SEMI','struct_declaration',3,'p_struct_declaration_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',686),
-  ('struct_declarator_list -> struct_declarator','struct_declarator_list',1,'p_struct_declarator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',737),
-  ('struct_declarator_list -> struct_declarator_list COMMA struct_declarator','struct_declarator_list',3,'p_struct_declarator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',738),
-  ('struct_declarator -> declarator','struct_declarator',1,'p_struct_declarator_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',746),
-  ('struct_declarator -> declarator COLON constant_expression','struct_declarator',3,'p_struct_declarator_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',751),
-  ('struct_declarator -> COLON constant_expression','struct_declarator',2,'p_struct_declarator_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',752),
-  ('enum_specifier -> ENUM ID','enum_specifier',2,'p_enum_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',760),
-  ('enum_specifier -> ENUM TYPEID','enum_specifier',2,'p_enum_specifier_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',761),
-  ('enum_specifier -> ENUM brace_open enumerator_list brace_close','enum_specifier',4,'p_enum_specifier_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',766),
-  ('enum_specifier -> ENUM ID brace_open enumerator_list brace_close','enum_specifier',5,'p_enum_specifier_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',771),
-  ('enum_specifier -> ENUM TYPEID brace_open enumerator_list brace_close','enum_specifier',5,'p_enum_specifier_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',772),
-  ('enumerator_list -> enumerator','enumerator_list',1,'p_enumerator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',777),
-  ('enumerator_list -> enumerator_list COMMA','enumerator_list',2,'p_enumerator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',778),
-  ('enumerator_list -> enumerator_list COMMA enumerator','enumerator_list',3,'p_enumerator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',779),
-  ('enumerator -> ID','enumerator',1,'p_enumerator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',790),
-  ('enumerator -> ID EQUALS constant_expression','enumerator',3,'p_enumerator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',791),
-  ('declarator -> direct_declarator','declarator',1,'p_declarator_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',803),
-  ('declarator -> pointer direct_declarator','declarator',2,'p_declarator_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',808),
-  ('direct_declarator -> ID','direct_declarator',1,'p_direct_declarator_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',813),
-  ('direct_declarator -> LPAREN declarator RPAREN','direct_declarator',3,'p_direct_declarator_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',822),
-  ('direct_declarator -> direct_declarator LBRACKET assignment_expression_opt RBRACKET','direct_declarator',4,'p_direct_declarator_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',827),
-  ('direct_declarator -> direct_declarator LBRACKET TIMES RBRACKET','direct_declarator',4,'p_direct_declarator_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',839),
-  ('direct_declarator -> direct_declarator LPAREN parameter_type_list RPAREN','direct_declarator',4,'p_direct_declarator_5','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',849),
-  ('direct_declarator -> direct_declarator LPAREN identifier_list_opt RPAREN','direct_declarator',4,'p_direct_declarator_5','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',850),
-  ('pointer -> TIMES type_qualifier_list_opt','pointer',2,'p_pointer','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',860),
-  ('pointer -> TIMES type_qualifier_list_opt pointer','pointer',3,'p_pointer','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',861),
-  ('type_qualifier_list -> type_qualifier','type_qualifier_list',1,'p_type_qualifier_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',871),
-  ('type_qualifier_list -> type_qualifier_list type_qualifier','type_qualifier_list',2,'p_type_qualifier_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',872),
-  ('parameter_type_list -> parameter_list','parameter_type_list',1,'p_parameter_type_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',877),
-  ('parameter_type_list -> parameter_list COMMA ELLIPSIS','parameter_type_list',3,'p_parameter_type_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',878),
-  ('parameter_list -> parameter_declaration','parameter_list',1,'p_parameter_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',886),
-  ('parameter_list -> parameter_list COMMA parameter_declaration','parameter_list',3,'p_parameter_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',887),
-  ('parameter_declaration -> declaration_specifiers declarator','parameter_declaration',2,'p_parameter_declaration_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',896),
-  ('parameter_declaration -> declaration_specifiers abstract_declarator_opt','parameter_declaration',2,'p_parameter_declaration_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',915),
-  ('identifier_list -> identifier','identifier_list',1,'p_identifier_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',927),
-  ('identifier_list -> identifier_list COMMA identifier','identifier_list',3,'p_identifier_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',928),
-  ('initializer -> assignment_expression','initializer',1,'p_initializer_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',937),
-  ('initializer -> brace_open initializer_list brace_close','initializer',3,'p_initializer_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',942),
-  ('initializer -> brace_open initializer_list COMMA brace_close','initializer',4,'p_initializer_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',943),
-  ('initializer_list -> designation_opt initializer','initializer_list',2,'p_initializer_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',948),
-  ('initializer_list -> initializer_list COMMA designation_opt initializer','initializer_list',4,'p_initializer_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',949),
-  ('designation -> designator_list EQUALS','designation',2,'p_designation','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',960),
-  ('designator_list -> designator','designator_list',1,'p_designator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',968),
-  ('designator_list -> designator_list designator','designator_list',2,'p_designator_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',969),
-  ('designator -> LBRACKET constant_expression RBRACKET','designator',3,'p_designator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',974),
-  ('designator -> PERIOD identifier','designator',2,'p_designator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',975),
-  ('type_name -> specifier_qualifier_list abstract_declarator_opt','type_name',2,'p_type_name','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',980),
-  ('abstract_declarator -> pointer','abstract_declarator',1,'p_abstract_declarator_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',996),
-  ('abstract_declarator -> pointer direct_abstract_declarator','abstract_declarator',2,'p_abstract_declarator_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1004),
-  ('abstract_declarator -> direct_abstract_declarator','abstract_declarator',1,'p_abstract_declarator_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1009),
-  ('direct_abstract_declarator -> LPAREN abstract_declarator RPAREN','direct_abstract_declarator',3,'p_direct_abstract_declarator_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1019),
-  ('direct_abstract_declarator -> direct_abstract_declarator LBRACKET assignment_expression_opt RBRACKET','direct_abstract_declarator',4,'p_direct_abstract_declarator_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1023),
-  ('direct_abstract_declarator -> LBRACKET assignment_expression_opt RBRACKET','direct_abstract_declarator',3,'p_direct_abstract_declarator_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1033),
-  ('direct_abstract_declarator -> direct_abstract_declarator LBRACKET TIMES RBRACKET','direct_abstract_declarator',4,'p_direct_abstract_declarator_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1041),
-  ('direct_abstract_declarator -> LBRACKET TIMES RBRACKET','direct_abstract_declarator',3,'p_direct_abstract_declarator_5','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1051),
-  ('direct_abstract_declarator -> direct_abstract_declarator LPAREN parameter_type_list_opt RPAREN','direct_abstract_declarator',4,'p_direct_abstract_declarator_6','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1059),
-  ('direct_abstract_declarator -> LPAREN parameter_type_list_opt RPAREN','direct_abstract_declarator',3,'p_direct_abstract_declarator_7','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1069),
-  ('block_item -> declaration','block_item',1,'p_block_item','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1080),
-  ('block_item -> statement','block_item',1,'p_block_item','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1081),
-  ('block_item_list -> block_item','block_item_list',1,'p_block_item_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1088),
-  ('block_item_list -> block_item_list block_item','block_item_list',2,'p_block_item_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1089),
-  ('compound_statement -> brace_open block_item_list_opt brace_close','compound_statement',3,'p_compound_statement_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1095),
-  ('labeled_statement -> ID COLON statement','labeled_statement',3,'p_labeled_statement_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1101),
-  ('labeled_statement -> CASE constant_expression COLON statement','labeled_statement',4,'p_labeled_statement_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1105),
-  ('labeled_statement -> DEFAULT COLON statement','labeled_statement',3,'p_labeled_statement_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1109),
-  ('selection_statement -> IF LPAREN expression RPAREN statement','selection_statement',5,'p_selection_statement_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1113),
-  ('selection_statement -> IF LPAREN expression RPAREN statement ELSE statement','selection_statement',7,'p_selection_statement_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1117),
-  ('selection_statement -> SWITCH LPAREN expression RPAREN statement','selection_statement',5,'p_selection_statement_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1121),
-  ('iteration_statement -> WHILE LPAREN expression RPAREN statement','iteration_statement',5,'p_iteration_statement_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1126),
-  ('iteration_statement -> DO statement WHILE LPAREN expression RPAREN SEMI','iteration_statement',7,'p_iteration_statement_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1130),
-  ('iteration_statement -> FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN statement','iteration_statement',9,'p_iteration_statement_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1134),
-  ('iteration_statement -> FOR LPAREN declaration expression_opt SEMI expression_opt RPAREN statement','iteration_statement',8,'p_iteration_statement_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1138),
-  ('jump_statement -> GOTO ID SEMI','jump_statement',3,'p_jump_statement_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1142),
-  ('jump_statement -> BREAK SEMI','jump_statement',2,'p_jump_statement_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1146),
-  ('jump_statement -> CONTINUE SEMI','jump_statement',2,'p_jump_statement_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1150),
-  ('jump_statement -> RETURN expression SEMI','jump_statement',3,'p_jump_statement_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1154),
-  ('jump_statement -> RETURN SEMI','jump_statement',2,'p_jump_statement_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1155),
-  ('expression_statement -> expression_opt SEMI','expression_statement',2,'p_expression_statement','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1160),
-  ('expression -> assignment_expression','expression',1,'p_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1167),
-  ('expression -> expression COMMA assignment_expression','expression',3,'p_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1168),
-  ('typedef_name -> TYPEID','typedef_name',1,'p_typedef_name','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1180),
-  ('assignment_expression -> conditional_expression','assignment_expression',1,'p_assignment_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1184),
-  ('assignment_expression -> unary_expression assignment_operator assignment_expression','assignment_expression',3,'p_assignment_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1185),
-  ('assignment_operator -> EQUALS','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1198),
-  ('assignment_operator -> XOREQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1199),
-  ('assignment_operator -> TIMESEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1200),
-  ('assignment_operator -> DIVEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1201),
-  ('assignment_operator -> MODEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1202),
-  ('assignment_operator -> PLUSEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1203),
-  ('assignment_operator -> MINUSEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1204),
-  ('assignment_operator -> LSHIFTEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1205),
-  ('assignment_operator -> RSHIFTEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1206),
-  ('assignment_operator -> ANDEQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1207),
-  ('assignment_operator -> OREQUAL','assignment_operator',1,'p_assignment_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1208),
-  ('constant_expression -> conditional_expression','constant_expression',1,'p_constant_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1213),
-  ('conditional_expression -> binary_expression','conditional_expression',1,'p_conditional_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1217),
-  ('conditional_expression -> binary_expression CONDOP expression COLON conditional_expression','conditional_expression',5,'p_conditional_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1218),
-  ('binary_expression -> cast_expression','binary_expression',1,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1226),
-  ('binary_expression -> binary_expression TIMES binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1227),
-  ('binary_expression -> binary_expression DIVIDE binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1228),
-  ('binary_expression -> binary_expression MOD binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1229),
-  ('binary_expression -> binary_expression PLUS binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1230),
-  ('binary_expression -> binary_expression MINUS binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1231),
-  ('binary_expression -> binary_expression RSHIFT binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1232),
-  ('binary_expression -> binary_expression LSHIFT binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1233),
-  ('binary_expression -> binary_expression LT binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1234),
-  ('binary_expression -> binary_expression LE binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1235),
-  ('binary_expression -> binary_expression GE binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1236),
-  ('binary_expression -> binary_expression GT binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1237),
-  ('binary_expression -> binary_expression EQ binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1238),
-  ('binary_expression -> binary_expression NE binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1239),
-  ('binary_expression -> binary_expression AND binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1240),
-  ('binary_expression -> binary_expression OR binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1241),
-  ('binary_expression -> binary_expression XOR binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1242),
-  ('binary_expression -> binary_expression LAND binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1243),
-  ('binary_expression -> binary_expression LOR binary_expression','binary_expression',3,'p_binary_expression','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1244),
-  ('cast_expression -> unary_expression','cast_expression',1,'p_cast_expression_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1252),
-  ('cast_expression -> LPAREN type_name RPAREN cast_expression','cast_expression',4,'p_cast_expression_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1256),
-  ('unary_expression -> postfix_expression','unary_expression',1,'p_unary_expression_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1260),
-  ('unary_expression -> PLUSPLUS unary_expression','unary_expression',2,'p_unary_expression_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1264),
-  ('unary_expression -> MINUSMINUS unary_expression','unary_expression',2,'p_unary_expression_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1265),
-  ('unary_expression -> unary_operator cast_expression','unary_expression',2,'p_unary_expression_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1266),
-  ('unary_expression -> SIZEOF unary_expression','unary_expression',2,'p_unary_expression_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1271),
-  ('unary_expression -> SIZEOF LPAREN type_name RPAREN','unary_expression',4,'p_unary_expression_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1272),
-  ('unary_operator -> AND','unary_operator',1,'p_unary_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1280),
-  ('unary_operator -> TIMES','unary_operator',1,'p_unary_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1281),
-  ('unary_operator -> PLUS','unary_operator',1,'p_unary_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1282),
-  ('unary_operator -> MINUS','unary_operator',1,'p_unary_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1283),
-  ('unary_operator -> NOT','unary_operator',1,'p_unary_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1284),
-  ('unary_operator -> LNOT','unary_operator',1,'p_unary_operator','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1285),
-  ('postfix_expression -> primary_expression','postfix_expression',1,'p_postfix_expression_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1290),
-  ('postfix_expression -> postfix_expression LBRACKET expression RBRACKET','postfix_expression',4,'p_postfix_expression_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1294),
-  ('postfix_expression -> postfix_expression LPAREN argument_expression_list RPAREN','postfix_expression',4,'p_postfix_expression_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1298),
-  ('postfix_expression -> postfix_expression LPAREN RPAREN','postfix_expression',3,'p_postfix_expression_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1299),
-  ('postfix_expression -> postfix_expression PERIOD identifier','postfix_expression',3,'p_postfix_expression_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1304),
-  ('postfix_expression -> postfix_expression ARROW identifier','postfix_expression',3,'p_postfix_expression_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1305),
-  ('postfix_expression -> postfix_expression PLUSPLUS','postfix_expression',2,'p_postfix_expression_5','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1310),
-  ('postfix_expression -> postfix_expression MINUSMINUS','postfix_expression',2,'p_postfix_expression_5','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1311),
-  ('postfix_expression -> LPAREN type_name RPAREN brace_open initializer_list brace_close','postfix_expression',6,'p_postfix_expression_6','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1316),
-  ('postfix_expression -> LPAREN type_name RPAREN brace_open initializer_list COMMA brace_close','postfix_expression',7,'p_postfix_expression_6','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1317),
-  ('primary_expression -> identifier','primary_expression',1,'p_primary_expression_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1322),
-  ('primary_expression -> constant','primary_expression',1,'p_primary_expression_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1326),
-  ('primary_expression -> unified_string_literal','primary_expression',1,'p_primary_expression_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1330),
-  ('primary_expression -> unified_wstring_literal','primary_expression',1,'p_primary_expression_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1331),
-  ('primary_expression -> LPAREN expression RPAREN','primary_expression',3,'p_primary_expression_4','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1336),
-  ('argument_expression_list -> assignment_expression','argument_expression_list',1,'p_argument_expression_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1340),
-  ('argument_expression_list -> argument_expression_list COMMA assignment_expression','argument_expression_list',3,'p_argument_expression_list','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1341),
-  ('identifier -> ID','identifier',1,'p_identifier','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1350),
-  ('constant -> INT_CONST_DEC','constant',1,'p_constant_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1354),
-  ('constant -> INT_CONST_OCT','constant',1,'p_constant_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1355),
-  ('constant -> INT_CONST_HEX','constant',1,'p_constant_1','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1356),
-  ('constant -> FLOAT_CONST','constant',1,'p_constant_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1362),
-  ('constant -> HEX_FLOAT_CONST','constant',1,'p_constant_2','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1363),
-  ('constant -> CHAR_CONST','constant',1,'p_constant_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1369),
-  ('constant -> WCHAR_CONST','constant',1,'p_constant_3','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1370),
-  ('unified_string_literal -> STRING_LITERAL','unified_string_literal',1,'p_unified_string_literal','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1381),
-  ('unified_string_literal -> unified_string_literal STRING_LITERAL','unified_string_literal',2,'p_unified_string_literal','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1382),
-  ('unified_wstring_literal -> WSTRING_LITERAL','unified_wstring_literal',1,'p_unified_wstring_literal','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1392),
-  ('unified_wstring_literal -> unified_wstring_literal WSTRING_LITERAL','unified_wstring_literal',2,'p_unified_wstring_literal','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1393),
-  ('brace_open -> LBRACE','brace_open',1,'p_brace_open','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1403),
-  ('brace_close -> RBRACE','brace_close',1,'p_brace_close','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1409),
-  ('empty -> <empty>','empty',0,'p_empty','/home/fijal/src/pypy/lib_pypy/cffi/_pycparser/c_parser.py',1415),
-]
diff --git a/pypy/tool/release/package.py b/pypy/tool/release/package.py
--- a/pypy/tool/release/package.py
+++ b/pypy/tool/release/package.py
@@ -17,6 +17,7 @@
 import py
 import fnmatch
 from rpython.tool.udir import udir
+import subprocess
 
 if sys.version_info < (2,6): py.test.skip("requires 2.6 so far")
 
@@ -64,6 +65,8 @@
             raise PyPyCNotFound(
                 'Bogus path: %r does not exist (see docstring for more info)'
                 % (os.path.dirname(str(pypy_c)),))
+    subprocess.check_call([str(pypy_c), '-c', 'import _sqlite3'])
+    subprocess.check_call([str(pypy_c), '-c', 'import _curses'])
     if sys.platform == 'win32' and not rename_pypy_c.lower().endswith('.exe'):
         rename_pypy_c += '.exe'
     binaries = [(pypy_c, rename_pypy_c)]
@@ -73,9 +76,9 @@
         #Instructions are provided on the website.
 
         # Can't rename a DLL: it is always called 'libpypy-c.dll'
-        
+
         for extra in ['libpypy-c.dll',
-                      'libexpat.dll', 'sqlite3.dll', 
+                      'libexpat.dll', 'sqlite3.dll',
                       'libeay32.dll', 'ssleay32.dll']:
             p = pypy_c.dirpath().join(extra)
             if not p.check():
@@ -93,7 +96,8 @@
                     ignore=ignore_patterns('.svn', 'py', '*.pyc', '*~'))
     shutil.copytree(str(basedir.join('lib_pypy')),
                     str(pypydir.join('lib_pypy')),
-                    ignore=ignore_patterns('.svn', 'py', '*.pyc', '*~'))
+                    ignore=ignore_patterns('.svn', 'py', '*.pyc', '*~',
+                                           '*.c', '*.o'))
     for file in ['LICENSE', 'README.rst']:
         shutil.copy(str(basedir.join(file)), str(pypydir))
     pypydir.ensure('include', dir=True)
diff --git a/rpython/jit/backend/x86/test/test_zrpy_releasegil.py b/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
--- a/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
+++ b/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
@@ -68,10 +68,12 @@
         c_qsort = rffi.llexternal('qsort', [rffi.VOIDP, rffi.SIZE_T,
                                             rffi.SIZE_T, CALLBACK], lltype.Void)
         #
-        def f42():
+        def f42(n):
             length = len(glob.lst)
             raw = alloc1()
             fn = llhelper(CALLBACK, rffi._make_wrapper_for(CALLBACK, callback))
+            if n & 1:    # to create a loop and a bridge, and also
+                pass     # to run the qsort() call in the blackhole interp
             c_qsort(rffi.cast(rffi.VOIDP, raw), rffi.cast(rffi.SIZE_T, 2),
                     rffi.cast(rffi.SIZE_T, 8), fn)
             free1(raw)
@@ -85,7 +87,7 @@
                     None, None, None, None, None, None)
         #
         def f(n, x, *args):
-            f42()
+            f42(n)
             n -= 1
             return (n, x) + args
         return before, f, None
diff --git a/rpython/memory/gctransform/asmgcroot.py b/rpython/memory/gctransform/asmgcroot.py
--- a/rpython/memory/gctransform/asmgcroot.py
+++ b/rpython/memory/gctransform/asmgcroot.py
@@ -1,13 +1,15 @@
 from rpython.flowspace.model import (Constant, Variable, Block, Link,
-     copygraph, SpaceOperation)
+     copygraph, SpaceOperation, checkgraph)
 from rpython.rlib.debug import ll_assert
+from rpython.rlib.nonconst import NonConstant
 from rpython.rtyper.annlowlevel import llhelper
 from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
 from rpython.rtyper.lltypesystem.lloperation import llop
 from rpython.memory.gctransform.framework import (
      BaseFrameworkGCTransformer, BaseRootWalker)
 from rpython.rtyper.rbuiltin import gen_cast
-from rpython.translator.unsimplify import copyvar
+from rpython.translator.unsimplify import copyvar, varoftype
+from rpython.translator.tool.cbuild import ExternalCompilationInfo
 import sys
 
 
@@ -22,6 +24,7 @@
 
 class AsmGcRootFrameworkGCTransformer(BaseFrameworkGCTransformer):
     _asmgcc_save_restore_arguments = None
+    _seen_gctransformer_hint_close_stack = None
 
     def push_roots(self, hop, keep_current_args=False):
         livevars = self.get_livevars_for_roots(hop, keep_current_args)
@@ -57,10 +60,22 @@
 
     def handle_call_with_close_stack(self, hop):
         fnptr = hop.spaceop.args[0].value
+        if self._seen_gctransformer_hint_close_stack is None:
+            self._seen_gctransformer_hint_close_stack = {}
+        if fnptr._obj.graph not in self._seen_gctransformer_hint_close_stack:
+            self._transform_hint_close_stack(fnptr)
+            self._seen_gctransformer_hint_close_stack[fnptr._obj.graph] = True
+        #
+        livevars = self.push_roots(hop)
+        self.default(hop)
+        self.pop_roots(hop, livevars)
+
+    def _transform_hint_close_stack(self, fnptr):
         # We cannot easily pass variable amount of arguments of the call
         # across the call to the pypy_asm_stackwalk helper.  So we store
-        # them away and restore them.  We need to make a new graph
-        # that starts with restoring the arguments.
+        # them away and restore them.  More precisely, we need to
+        # replace 'graph' with code that saves the arguments, and make
+        # a new graph that starts with restoring the arguments.
         if self._asmgcc_save_restore_arguments is None:
             self._asmgcc_save_restore_arguments = {}
         sradict = self._asmgcc_save_restore_arguments
@@ -80,25 +95,52 @@
                 sradict[key] = Constant(p, lltype.Ptr(CONTAINER))
             sra.append(sradict[key])
         #
-        # store the value of the arguments
-        livevars = self.push_roots(hop)
+        # make a copy of the graph that will reload the values
+        graph = fnptr._obj.graph
+        graph2 = copygraph(graph)
+        #
+        # edit the original graph to only store the value of the arguments
+        block = Block(graph.startblock.inputargs)
         c_item0 = Constant('item0', lltype.Void)
-        for v_arg, c_p in zip(hop.spaceop.args[1:], sra):
+        assert len(block.inputargs) == len(sra)
+        for v_arg, c_p in zip(block.inputargs, sra):
             if isinstance(v_arg.concretetype, lltype.Ptr):
-                v_arg = hop.genop("cast_ptr_to_adr", [v_arg],
-                                  resulttype=llmemory.Address)
-            hop.genop("bare_setfield", [c_p, c_item0, v_arg])
+                v_adr = varoftype(llmemory.Address)
+                block.operations.append(
+                    SpaceOperation("cast_ptr_to_adr", [v_arg], v_adr))
+                v_arg = v_adr
+            v_void = varoftype(lltype.Void)
+            block.operations.append(
+                SpaceOperation("bare_setfield", [c_p, c_item0, v_arg], v_void))
         #
-        # make a copy of the graph that will reload the values
-        graph2 = copygraph(fnptr._obj.graph)
+        # call asm_stackwalk(graph2)
+        FUNC2 = lltype.FuncType([], FUNC1.RESULT)
+        fnptr2 = lltype.functionptr(FUNC2,
+                                    fnptr._obj._name + '_reload',
+                                    graph=graph2)
+        c_fnptr2 = Constant(fnptr2, lltype.Ptr(FUNC2))
+        HELPERFUNC = lltype.FuncType([lltype.Ptr(FUNC2),
+                                      ASM_FRAMEDATA_HEAD_PTR], FUNC1.RESULT)
+        v_asm_stackwalk = varoftype(lltype.Ptr(HELPERFUNC), "asm_stackwalk")
+        block.operations.append(
+            SpaceOperation("cast_pointer", [c_asm_stackwalk], v_asm_stackwalk))
+        v_result = varoftype(FUNC1.RESULT)
+        block.operations.append(
+            SpaceOperation("indirect_call", [v_asm_stackwalk, c_fnptr2,
+                                             c_gcrootanchor,
+                                             Constant(None, lltype.Void)],
+                           v_result))
+        block.closeblock(Link([v_result], graph.returnblock))
+        graph.startblock = block
+        #
+        # edit the copy of the graph to reload the values
         block2 = graph2.startblock
         block1 = Block([])
         reloadedvars = []
         for v, c_p in zip(block2.inputargs, sra):
             v = copyvar(None, v)
             if isinstance(v.concretetype, lltype.Ptr):
-                w = Variable('tmp')
-                w.concretetype = llmemory.Address
+                w = varoftype(llmemory.Address)
             else:
                 w = v
             block1.operations.append(SpaceOperation('getfield',
@@ -109,21 +151,9 @@
             reloadedvars.append(v)
         block1.closeblock(Link(reloadedvars, block2))
         graph2.startblock = block1
-        FUNC2 = lltype.FuncType([], FUNC1.RESULT)
-        fnptr2 = lltype.functionptr(FUNC2,
-                                    fnptr._obj._name + '_reload',
-                                    graph=graph2)
-        c_fnptr2 = Constant(fnptr2, lltype.Ptr(FUNC2))
-        HELPERFUNC = lltype.FuncType([lltype.Ptr(FUNC2),
-                                      ASM_FRAMEDATA_HEAD_PTR], FUNC1.RESULT)
         #
-        v_asm_stackwalk = hop.genop("cast_pointer", [c_asm_stackwalk],
-                                    resulttype=lltype.Ptr(HELPERFUNC))
-        hop.genop("indirect_call",
-                  [v_asm_stackwalk, c_fnptr2, c_gcrootanchor,
-                   Constant(None, lltype.Void)],
-                  resultvar=hop.spaceop.result)
-        self.pop_roots(hop, livevars)
+        checkgraph(graph)
+        checkgraph(graph2)
 
 
 class AsmStackRootWalker(BaseRootWalker):
@@ -284,6 +314,8 @@
             stackscount += 1
         #
         expected = rffi.stackcounter.stacks_counter
+        if NonConstant(0):
+            rffi.stackcounter.stacks_counter += 42    # hack to force it
         ll_assert(not (stackscount < expected), "non-closed stacks around")
         ll_assert(not (stackscount > expected), "stacks counter corruption?")
         lltype.free(otherframe, flavor='raw')
@@ -681,13 +713,16 @@
 gcrootanchor.next = gcrootanchor
 c_gcrootanchor = Constant(gcrootanchor, ASM_FRAMEDATA_HEAD_PTR)
 
+eci = ExternalCompilationInfo(pre_include_bits=['#define PYPY_USE_ASMGCC'])
+
 pypy_asm_stackwalk = rffi.llexternal('pypy_asm_stackwalk',
                                      [ASM_CALLBACK_PTR,
                                       ASM_FRAMEDATA_HEAD_PTR],
                                      lltype.Signed,
                                      sandboxsafe=True,
                                      _nowrapper=True,
-                                     random_effects_on_gcobjs=True)
+                                     random_effects_on_gcobjs=True,
+                                     compilation_info=eci)
 c_asm_stackwalk = Constant(pypy_asm_stackwalk,
                            lltype.typeOf(pypy_asm_stackwalk))
 
diff --git a/rpython/rtyper/lltypesystem/rffi.py b/rpython/rtyper/lltypesystem/rffi.py
--- a/rpython/rtyper/lltypesystem/rffi.py
+++ b/rpython/rtyper/lltypesystem/rffi.py
@@ -282,13 +282,13 @@
     args = ', '.join(['a%d' % i for i in range(len(TP.TO.ARGS))])
     source = py.code.Source(r"""
         def wrapper(%(args)s):    # no *args - no GIL for mallocing the tuple
-            llop.gc_stack_bottom(lltype.Void)   # marker for trackgcroot.py
             if aroundstate is not None:
                 after = aroundstate.after
                 if after:
                     after()
             # from now on we hold the GIL
             stackcounter.stacks_counter += 1
+            llop.gc_stack_bottom(lltype.Void)   # marker for trackgcroot.py
             try:
                 result = callable(%(args)s)
             except Exception, e:
diff --git a/rpython/translator/c/gcc/test/test_asmgcroot.py b/rpython/translator/c/gcc/test/test_asmgcroot.py
--- a/rpython/translator/c/gcc/test/test_asmgcroot.py
+++ b/rpython/translator/c/gcc/test/test_asmgcroot.py
@@ -195,8 +195,8 @@
         
         @entrypoint("x42", [lltype.Signed, lltype.Signed], c_name='callback')
         def mycallback(a, b):
+            rffi.stackcounter.stacks_counter += 1
             llop.gc_stack_bottom(lltype.Void)
-            rffi.stackcounter.stacks_counter += 1
             gc.collect()
             rffi.stackcounter.stacks_counter -= 1
             return a + b
diff --git a/rpython/translator/c/src/mem.c b/rpython/translator/c/src/mem.c
--- a/rpython/translator/c/src/mem.c
+++ b/rpython/translator/c/src/mem.c
@@ -96,3 +96,27 @@
     GC_set_warn_proc(mem_boehm_ignore);
 }
 #endif /* BOEHM GC */
+
+
+#ifdef RPY_ASSERT
+# ifdef PYPY_USE_ASMGCC
+#  include "structdef.h"
+#  include "forwarddecl.h"
+# endif
+void pypy_check_stack_count(void)
+{
+# ifdef PYPY_USE_ASMGCC
+    void *anchor = (void*)&pypy_g_ASM_FRAMEDATA_HEAD;
+    void *fd = ((void* *) (((char *)anchor) + sizeof(void*)))[0];
+    long got = 0;
+    long stacks_counter =
+       pypy_g_rpython_rtyper_lltypesystem_rffi_StackCounter.sc_inst_stacks_counter;
+    while (fd != anchor) {
+        got += 1;
+        fd = ((void* *) (((char *)fd) + sizeof(void*)))[0];
+    }
+    RPyAssert(got == stacks_counter - 1,
+              "bad stacks_counter or non-closed stacks around");
+# endif
+}
+#endif
diff --git a/rpython/translator/c/src/mem.h b/rpython/translator/c/src/mem.h
--- a/rpython/translator/c/src/mem.h
+++ b/rpython/translator/c/src/mem.h
@@ -195,8 +195,14 @@
                                              "g" (v))
 
 /* marker for trackgcroot.py, and inhibits tail calls */
-#define pypy_asm_stack_bottom()  asm volatile ("/* GC_STACK_BOTTOM */" : : : \
-                                               "memory")
+#define pypy_asm_stack_bottom() { asm volatile ("/* GC_STACK_BOTTOM */" : : : \
+                                  "memory"); pypy_check_stack_count(); }
+#ifdef RPY_ASSERT
+void pypy_check_stack_count(void);
+#else
+static void pypy_check_stack_count(void) { }
+#endif
+
 
 #define OP_GC_ASMGCROOT_STATIC(i, r)   r =	       \
 	i == 0 ? (void*)&__gcmapstart :		       \


More information about the pypy-commit mailing list