summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <jdahlin@async.com.br>2008-04-28 19:49:46 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-04-28 19:49:46 +0000
commita4c8137a286401991e490712c7bd9ba685ae4643 (patch)
tree3f8d1379c10b2c70087c0cc6b3ed2e1b5668a432
parent61ceccf7f90aee155123b9f8abf6997e190bd43d (diff)
downloadgobject-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--ChangeLog11
-rw-r--r--giscanner/ast.py4
-rw-r--r--giscanner/girwriter.py17
-rw-r--r--giscanner/glibast.py4
-rw-r--r--giscanner/glibtransformer.py3
-rw-r--r--tests/parser/Foo-expected.gir96
-rw-r--r--tests/parser/utility-expected.gir1
7 files changed, 83 insertions, 53 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ade6159..e3aa77d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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">