[pypy-commit] pypy rffi-parser-2: Move some logic from parse_source to CTypeSpace.__init__
rlamy
pypy.commits at gmail.com
Mon Jan 16 10:32:49 EST 2017
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: rffi-parser-2
Changeset: r89609:f2837cdef16e
Date: 2017-01-16 15:18 +0000
http://bitbucket.org/pypy/pypy/changeset/f2837cdef16e/
Log: Move some logic from parse_source to CTypeSpace.__init__
diff --git a/pypy/module/cpyext/cparser.py b/pypy/module/cpyext/cparser.py
--- a/pypy/module/cpyext/cparser.py
+++ b/pypy/module/cpyext/cparser.py
@@ -685,17 +685,21 @@
class CTypeSpace(object):
- def __init__(self, source, parser, definitions=None, macros=None, headers=None):
+ def __init__(self, source, parser=None, definitions=None, macros=None,
+ headers=None, includes=None):
self.source = source
self.definitions = definitions if definitions is not None else {}
self.macros = macros if macros is not None else {}
self.structs = {}
- self.ctx = parser
+ self.ctx = parser if parser else Parser()
self.headers = headers if headers is not None else ['sys/types.h']
self._Config = type('Config', (object,), {})
self._TYPES = {}
self.includes = []
self.struct_typedefs = {}
+ if includes is not None:
+ for header in includes:
+ self.include(header)
def include(self, other):
self.ctx.include(other.ctx)
@@ -821,11 +825,7 @@
def parse_source(source, includes=None, headers=None, configure_now=True):
- ctx = Parser()
- src = CTypeSpace(source, ctx, headers=headers)
- if includes is not None:
- for header in includes:
- src.include(header)
- ctx.parse(source)
+ src = CTypeSpace(source, headers=headers, includes=includes)
+ src.ctx.parse(source)
src.configure_types()
return src
More information about the pypy-commit
mailing list