diff options
author | Shaun McCance <shaunm@gnome.org> | 2011-08-23 09:12:02 -0400 |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2012-02-17 10:27:40 +0100 |
commit | f2ab70164e5e72369fb6591670d3214d06f451bd (patch) | |
tree | 07079cfadfbf79147653c7e42c5dc004881d73df /giscanner/girparser.py | |
parent | 773d36876cfd5a23e32c506e78bdfc7383b05713 (diff) | |
download | gobject-introspection-f2ab70164e5e72369fb6591670d3214d06f451bd.tar.gz |
g-ir-doc-tool: More Mallard work, using experimantal api extension
Diffstat (limited to 'giscanner/girparser.py')
-rw-r--r-- | giscanner/girparser.py | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/giscanner/girparser.py b/giscanner/girparser.py index 5faaf197..a59037da 100644 --- a/giscanner/girparser.py +++ b/giscanner/girparser.py @@ -256,27 +256,27 @@ class GIRParser(object): for iface in self._find_children(node, _corens('prerequisite')): obj.prerequisites.append(self._namespace.type_from_name(iface.attrib['name'])) for func_node in self._find_children(node, _corens('function')): - func = self._parse_function_common(func_node, ast.Function) + func = self._parse_function_common(func_node, ast.Function, obj) obj.static_methods.append(func) for method in self._find_children(node, _corens('method')): - func = self._parse_function_common(method, ast.Function) + func = self._parse_function_common(method, ast.Function, obj) func.is_method = True obj.methods.append(func) for method in self._find_children(node, _corens('virtual-method')): - func = self._parse_function_common(method, ast.VFunction) + func = self._parse_function_common(method, ast.VFunction, obj) self._parse_generic_attribs(method, func) func.is_method = True func.invoker = method.get('invoker') obj.virtual_methods.append(func) for ctor in self._find_children(node, _corens('constructor')): - func = self._parse_function_common(ctor, ast.Function) + func = self._parse_function_common(ctor, ast.Function, obj) func.is_constructor = True obj.constructors.append(func) obj.fields.extend(self._parse_fields(node)) for prop in self._find_children(node, _corens('property')): - obj.properties.append(self._parse_property(prop)) + obj.properties.append(self._parse_property(prop, obj)) for signal in self._find_children(node, _glibns('signal')): - obj.signals.append(self._parse_function_common(signal, ast.Signal)) + obj.signals.append(self._parse_function_common(signal, ast.Signal, obj)) def _parse_callback(self, node): callback = self._parse_function_common(node, ast.Callback) @@ -286,7 +286,7 @@ class GIRParser(object): function = self._parse_function_common(node, ast.Function) self._namespace.append(function) - def _parse_function_common(self, node, klass): + def _parse_function_common(self, node, klass, parent=None): name = node.attrib['name'] returnnode = node.find(_corens('return-value')) if not returnnode: @@ -319,6 +319,7 @@ class GIRParser(object): func.shadows = node.attrib.get('shadows', None) func.shadowed_by = node.attrib.get('shadowed-by', None) func.moved_to = node.attrib.get('moved-to', None) + func.parent = parent parameters_node = node.find(_corens('parameters')) if (parameters_node is not None): @@ -377,13 +378,13 @@ class GIRParser(object): compound.fields.extend(self._parse_fields(node)) for method in self._find_children(node, _corens('method')): compound.methods.append( - self._parse_function_common(method, ast.Function)) + self._parse_function_common(method, ast.Function, compound)) for func in self._find_children(node, _corens('function')): compound.static_methods.append( - self._parse_function_common(func, ast.Function)) + self._parse_function_common(func, ast.Function, compound)) for ctor in self._find_children(node, _corens('constructor')): compound.constructors.append( - self._parse_function_common(ctor, ast.Function)) + self._parse_function_common(ctor, ast.Function, compound)) return compound def _parse_record(self, node, anonymous=False): @@ -482,15 +483,15 @@ class GIRParser(object): if self._types_only: return for method in self._find_children(node, _corens('method')): - func = self._parse_function_common(method, ast.Function) + func = self._parse_function_common(method, ast.Function, obj) func.is_method = True obj.methods.append(func) for ctor in self._find_children(node, _corens('constructor')): obj.constructors.append( - self._parse_function_common(ctor, ast.Function)) + self._parse_function_common(ctor, ast.Function, obj)) for callback in self._find_children(node, _corens('callback')): obj.fields.append( - self._parse_function_common(callback, ast.Callback)) + self._parse_function_common(callback, ast.Callback, obj)) def _parse_field(self, node): type_node = None @@ -521,7 +522,7 @@ class GIRParser(object): self._parse_generic_attribs(node, field) return field - def _parse_property(self, node): + def _parse_property(self, node, parent): prop = ast.Property(node.attrib['name'], self._parse_type(node), node.attrib.get('readable') != '0', @@ -530,6 +531,7 @@ class GIRParser(object): node.attrib.get('construct-only') == '1', node.attrib.get('transfer-ownership')) self._parse_generic_attribs(node, prop) + prop.parent = parent return prop def _parse_member(self, node): |