diff options
author | Johan Dahlin <jdahlin@async.com.br> | 2008-04-28 19:49:46 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2008-04-28 19:49:46 +0000 |
commit | a4c8137a286401991e490712c7bd9ba685ae4643 (patch) | |
tree | 3f8d1379c10b2c70087c0cc6b3ed2e1b5668a432 | |
parent | 61ceccf7f90aee155123b9f8abf6997e190bd43d (diff) | |
download | gobject-introspection-a4c8137a286401991e490712c7bd9ba685ae4643.tar.gz |
Rename most c:identifier to c:type. Add new ones to
2008-04-28 Johan Dahlin <jdahlin@async.com.br>
* giscanner/ast.py:
* giscanner/girwriter.py:
* giscanner/glibast.py:
* giscanner/glibtransformer.py:
* tests/parser/Foo-expected.gir:
* tests/parser/utility-expected.gir:
Rename most c:identifier to c:type. Add new ones to
class/interface/enum/boxed.
svn path=/trunk/; revision=252
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | giscanner/ast.py | 4 | ||||
-rw-r--r-- | giscanner/girwriter.py | 17 | ||||
-rw-r--r-- | giscanner/glibast.py | 4 | ||||
-rw-r--r-- | giscanner/glibtransformer.py | 3 | ||||
-rw-r--r-- | tests/parser/Foo-expected.gir | 96 | ||||
-rw-r--r-- | tests/parser/utility-expected.gir | 1 |
7 files changed, 83 insertions, 53 deletions
@@ -2,6 +2,17 @@ * giscanner/ast.py: * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * tests/parser/Foo-expected.gir: + * tests/parser/utility-expected.gir: + Rename most c:identifier to c:type. Add new ones to + class/interface/enum/boxed. + +2008-04-28 Johan Dahlin <jdahlin@async.com.br> + + * giscanner/ast.py: + * giscanner/girwriter.py: * giscanner/glibtransformer.py: * tests/parser/Foo-expected.gidl: * tests/parser/Makefile.am: diff --git a/giscanner/ast.py b/giscanner/ast.py index 38f03130..cc07660c 100644 --- a/giscanner/ast.py +++ b/giscanner/ast.py @@ -44,7 +44,7 @@ class VFunction(Function): class Type(Node): def __init__(self, name): Node.__init__(self, name) - self.cidentifier = name + self.ctype = name def __repr__(self): return 'Type(%r)' % (self.name,) @@ -65,6 +65,7 @@ class Enum(Node): def __init__(self, name, members): Node.__init__(self, name) self.members = members + self.ctype = name def __repr__(self): return 'Enum(%r, %r)' % (self.name, self.members) @@ -101,6 +102,7 @@ class Return(Node): class Class(Node): def __init__(self, name, parent): Node.__init__(self, name) + self.ctype = name self.parent = parent self.methods = [] self.constructors = [] diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py index 79367c8f..1b640cd6 100644 --- a/giscanner/girwriter.py +++ b/giscanner/girwriter.py @@ -99,8 +99,12 @@ class GIRWriter(XMLWriter): self._write_type(parameter.type) def _write_type(self, type): - attrs = [('name', type.name), - ('c:identifier', type.cidentifier)] + attrs = [('name', type.name)] + # FIXME: figure out if type references a basic type + # or a boxed/class/interface etc. and skip + # writing the ctype if the latter. + if 1: + attrs.append(('c:type', type.ctype)) self.write_tag('type', attrs) def _write_sequence(self, sequence): @@ -110,7 +114,8 @@ class GIRWriter(XMLWriter): self.write_tag('element-type', attrs) def _write_enum(self, enum): - attrs = [('name', enum.name)] + attrs = [('name', enum.name), + ('c:type', enum.ctype)] tag_name = 'enumeration' if isinstance(enum, GLibEnum): attrs.extend([('glib:type-name', enum.type_name), @@ -130,7 +135,8 @@ class GIRWriter(XMLWriter): self.write_tag('member', attrs) def _write_class(self, node): - attrs = [('name', node.name)] + attrs = [('name', node.name), + ('c:type', node.ctype)] if isinstance(node, Class): tag_name = 'class' if node.parent is not None: @@ -150,7 +156,8 @@ class GIRWriter(XMLWriter): self._write_property(prop) def _write_boxed(self, boxed): - attrs = [('glib:name', boxed.name), + attrs = [('c:type', boxed.ctype), + ('glib:name', boxed.name), ('glib:type-name', boxed.type_name), ('glib:get-type', boxed.get_type)] diff --git a/giscanner/glibast.py b/giscanner/glibast.py index 87c3bd42..116f88d5 100644 --- a/giscanner/glibast.py +++ b/giscanner/glibast.py @@ -24,6 +24,7 @@ from .ast import Class, Enum, Interface, Member, Node, Property, Struct class GLibEnum(Enum): def __init__(self, name, members, type_name, get_type): Enum.__init__(self, name, members) + self.ctype = type_name self.type_name = type_name self.get_type = get_type @@ -48,6 +49,7 @@ class GLibEnumMember(Member): class GLibObject(Class): def __init__(self, name, parent, type_name, get_type): Class.__init__(self, name, parent) + self.ctype = type_name self.type_name = type_name self.get_type = get_type self.signals = [] @@ -55,6 +57,7 @@ class GLibObject(Class): class GLibBoxed(Struct): def __init__(self, name, type_name, get_type): Struct.__init__(self, name) + self.ctype = name self.constructors = [] self.methods = [] self.type_name = type_name @@ -64,6 +67,7 @@ class GLibBoxed(Struct): class GLibInterface(Interface): def __init__(self, name, type_name, get_type): Interface.__init__(self, name) + self.ctype = type_name self.type_name = type_name self.get_type = get_type self.signals = [] diff --git a/giscanner/glibtransformer.py b/giscanner/glibtransformer.py index 305899f2..92c88a36 100644 --- a/giscanner/glibtransformer.py +++ b/giscanner/glibtransformer.py @@ -139,8 +139,7 @@ class GLibTransformer(object): def _resolve_param_type(self, ptype): type_name = ptype.name.replace('*', '') - ptype.name = ptype.name.replace(type_name, - self._resolve_type_name(type_name)) + ptype.name = self._resolve_type_name(type_name) return ptype def _parse_node(self, node): diff --git a/tests/parser/Foo-expected.gir b/tests/parser/Foo-expected.gir index 0f7f8dfe..38bbe163 100644 --- a/tests/parser/Foo-expected.gir +++ b/tests/parser/Foo-expected.gir @@ -4,144 +4,146 @@ xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> <namespace name="Foo"> <interface name="Interface" + c:type="FooInterface" glib:type-name="FooInterface" glib:get-type="foo_interface_get_type"> </interface> <function name="init" c:identifier="foo_init"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> </function> <class name="Object" + c:type="FooObject" parent="GLib.Object" glib:type-name="FooObject" glib:get-type="foo_object_get_type"> <constructor name="new" c:identifier="foo_object_new"> <return-value> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </return-value> </constructor> <method name="method" c:identifier="foo_object_method"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> </parameters> </method> <method name="external_type" c:identifier="foo_object_external_type"> <return-value> - <type name="utility.Object*" c:identifier="UtilityObject*"/> + <type name="utility.Object" c:type="UtilityObject*"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> </parameters> </method> <method name="out" c:identifier="foo_object_out"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="outarg" direction="out"> - <type name="int*" c:identifier="int*"/> + <type name="int" c:type="int*"/> </parameter> </parameters> </method> <method name="create_object" c:identifier="foo_object_create_object"> <return-value> - <type name="GLib.Object*" c:identifier="GObject*"/> + <type name="GLib.Object" c:type="GObject*"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> </parameters> </method> <method name="inout" c:identifier="foo_object_inout"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="inoutarg" direction="inout"> - <type name="int*" c:identifier="int*"/> + <type name="int" c:type="int*"/> </parameter> </parameters> </method> <method name="inout2" c:identifier="foo_object_inout2"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="inoutarg"> - <type name="int*" c:identifier="int*"/> + <type name="int" c:type="int*"/> </parameter> </parameters> </method> <method name="inout3" c:identifier="foo_object_inout3"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="inoutarg" direction="inout"> - <type name="int*" c:identifier="int*"/> + <type name="int" c:type="int*"/> </parameter> </parameters> </method> <method name="in" c:identifier="foo_object_in"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="inarg"> - <type name="int*" c:identifier="int*"/> + <type name="int" c:type="int*"/> </parameter> </parameters> </method> <method name="calleeowns" c:identifier="foo_object_calleeowns"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="toown" transfer="full"> - <type name="GLib.Object*" c:identifier="GObject*"/> + <type name="GLib.Object" c:type="GObject*"/> </parameter> </parameters> </method> <method name="calleesowns" c:identifier="foo_object_calleesowns"> <return-value> - <type name="gint" c:identifier="gint"/> + <type name="gint" c:type="gint"/> </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> <parameter name="toown1" transfer="full"> - <type name="GLib.Object*" c:identifier="GObject*"/> + <type name="GLib.Object" c:type="GObject*"/> </parameter> <parameter name="toown2" transfer="full"> - <type name="GLib.Object*" c:identifier="GObject*"/> + <type name="GLib.Object" c:type="GObject*"/> </parameter> </parameters> </method> @@ -153,7 +155,7 @@ </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> </parameters> </method> @@ -165,25 +167,27 @@ </return-value> <parameters> <parameter name="object"> - <type name="Object*" c:identifier="FooObject*"/> + <type name="Object" c:type="FooObject*"/> </parameter> </parameters> </method> <property name="string"> - <type name="gchararray" c:identifier="gchararray"/> + <type name="gchararray" c:type="gchararray"/> </property> </class> <class name="Subobject" + c:type="FooSubobject" parent="Object" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type"> <constructor name="new" c:identifier="foo_subobject_new"> <return-value> - <type name="Subobject*" c:identifier="FooSubobject*"/> + <type name="Subobject" c:type="FooSubobject*"/> </return-value> </constructor> </class> <enumeration name="EnumType" + c:type="FooEnumType" glib:type-name="FooEnumType" glib:get-type="foo_enum_type_get_type"> <member name="FOO_ENUM_ALPHA" value="0" glib:nick="alpha"/> @@ -192,58 +196,60 @@ </enumeration> <function name="enum_type_method" c:identifier="foo_enum_type_method"> <return-value> - <type name="int" c:identifier="int"/> + <type name="int" c:type="int"/> </return-value> <parameters> <parameter name="foo_enum"> - <type name="EnumType" c:identifier="FooEnumType"/> + <type name="EnumType" c:type="FooEnumType"/> </parameter> </parameters> </function> <bitfield name="FlagsType" + c:type="FooFlagsType" glib:type-name="FooFlagsType" glib:get-type="foo_flags_type_get_type"> <member name="FOO_FLAGS_FIRST" value="1" glib:nick="first"/> <member name="FOO_FLAGS_SECOND" value="2" glib:nick="second"/> <member name="FOO_FLAGS_THIRD" value="4" glib:nick="third"/> </bitfield> - <enumeration name="EnumNoType"> + <enumeration name="EnumNoType" c:type="FooEnumNoType"> <member name="FOO_ENUM_UN" value="1"/> <member name="FOO_ENUM_DEUX" value="2"/> <member name="FOO_ENUM_TROIS" value="3"/> </enumeration> - <glib:boxed glib:name="Boxed" + <glib:boxed c:type="Boxed" + glib:name="Boxed" glib:type-name="FooBoxed" glib:get-type="foo_boxed_get_type"> <constructor name="new" c:identifier="foo_boxed_new"> <return-value> - <type name="Boxed*" c:identifier="FooBoxed*"/> + <type name="Boxed" c:type="FooBoxed*"/> </return-value> </constructor> <method name="method" c:identifier="foo_boxed_method"> <return-value> - <type name="void" c:identifier="void"/> + <type name="void" c:type="void"/> </return-value> <parameters> <parameter name="boxed"> - <type name="Boxed*" c:identifier="FooBoxed*"/> + <type name="Boxed" c:type="FooBoxed*"/> </parameter> </parameters> </method> </glib:boxed> <callback name="FooCallback"> <return-value> - <type name="gboolean" c:identifier="gboolean"/> + <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="foo"> - <type name="FooObject*" c:identifier="FooObject*"/> + <type name="FooObject*" c:type="FooObject*"/> </parameter> <parameter name="b"> - <type name="gboolean" c:identifier="gboolean"/> + <type name="gboolean" c:type="gboolean"/> </parameter> <parameter name="data"> - <type name="gpointer" c:identifier="gpointer"/> + <type name="gpointer" c:type="gpointer"/> </parameter> </parameters> </callback> diff --git a/tests/parser/utility-expected.gir b/tests/parser/utility-expected.gir index 6240c9e1..25e90500 100644 --- a/tests/parser/utility-expected.gir +++ b/tests/parser/utility-expected.gir @@ -4,6 +4,7 @@ xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> <namespace name="utility"> <class name="Object" + c:type="UtilityObject" parent="GLib.Object" glib:type-name="UtilityObject" glib:get-type="utility_object_get_type"> |