Move c:identifier from return-value to subchild type, as per Jürgs
authorJohan Dahlin <jdahlin@async.com.br>
Mon, 28 Apr 2008 19:24:11 +0000 (19:24 +0000)
committerJohan Dahlin <johan@src.gnome.org>
Mon, 28 Apr 2008 19:24:11 +0000 (19:24 +0000)
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:
    Move c:identifier from return-value to subchild type,
    as per Jürgs suggestion

svn path=/trunk/; revision=250

ChangeLog
giscanner/ast.py
giscanner/girwriter.py
giscanner/glibtransformer.py
tests/parser/Foo-expected.gir
tests/parser/Makefile.am

index b178556..9ade615 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+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:
+       Move c:identifier from return-value to subchild type,
+       as per Jürgs suggestion
+
 2008-04-28  Johan Dahlin  <johan@gnome.org>
 
        * giscanner/girwriter.py:
index 1d2e518..38f0313 100644 (file)
@@ -44,6 +44,7 @@ class VFunction(Function):
 class Type(Node):
     def __init__(self, name):
         Node.__init__(self, name)
+        self.cidentifier = name
 
     def __repr__(self):
         return 'Type(%r)' % (self.name,)
@@ -92,7 +93,6 @@ class Return(Node):
         Node.__init__(self)
         self.type = Type(type_name)
         self.transfer = 'none'
-        self.ctype = self.type
 
     def __repr__(self):
         return 'Return(%r)' % (self.type,)
index 1b0e49b..79367c8 100644 (file)
@@ -76,8 +76,7 @@ class GIRWriter(XMLWriter):
     def _write_return_type(self, return_):
         if not return_:
             return
-        attrs = [('c:identifer', return_.type.name)]
-        with self.tagcontext('return-value', attrs):
+        with self.tagcontext('return-value'):
             if isinstance(return_.type, Sequence):
                 self._write_sequence(return_.type)
             else:
@@ -100,7 +99,9 @@ class GIRWriter(XMLWriter):
             self._write_type(parameter.type)
 
     def _write_type(self, type):
-        self.write_tag('type', [('name', type.name)])
+        attrs = [('name', type.name),
+                 ('c:identifier', type.cidentifier)]
+        self.write_tag('type', attrs)
 
     def _write_sequence(self, sequence):
         attrs = [('c:owner', sequence.cowner)]
index 0635c58..305899f 100644 (file)
@@ -341,8 +341,8 @@ class GLibTransformer(object):
 
     def _introspect_signals(self, node, type_id):
         for signal_info in cgobject.signal_list(type_id):
-            retval = Return(cgobject.type_name(signal_info.return_type))
-            signal = GLibSignal(signal_info.signal_name, retval)
+            return_ = Return(cgobject.type_name(signal_info.return_type))
+            signal = GLibSignal(signal_info.signal_name, return_)
             for i, parameter in enumerate(signal_info.get_params()):
                 if i == 0:
                     name = 'object'
index aa6e4d8..0f7f8df 100644 (file)
@@ -8,8 +8,8 @@
                glib:get-type="foo_interface_get_type">
     </interface>
     <function name="init" c:identifier="foo_init">
-      <return-value c:identifer="gint">
-        <type name="gint"/>
+      <return-value>
+        <type name="gint" c:identifier="gint"/>
       </return-value>
     </function>
     <class name="Object"
            glib:type-name="FooObject"
            glib:get-type="foo_object_get_type">
       <constructor name="new" c:identifier="foo_object_new">
-        <return-value c:identifer="Object*">
-          <type name="Object*"/>
+        <return-value>
+          <type name="Object*" c:identifier="FooObject*"/>
         </return-value>
       </constructor>
       <method name="method" c:identifier="foo_object_method">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="external_type" c:identifier="foo_object_external_type">
-        <return-value c:identifer="utility.Object*">
-          <type name="utility.Object*"/>
+        <return-value>
+          <type name="utility.Object*" c:identifier="UtilityObject*"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="out" c:identifier="foo_object_out">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="outarg" direction="out">
-            <type name="int*"/>
+            <type name="int*" c:identifier="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="create_object" c:identifier="foo_object_create_object">
-        <return-value c:identifer="GLib.Object*">
-          <type name="GLib.Object*"/>
+        <return-value>
+          <type name="GLib.Object*" c:identifier="GObject*"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="inout" c:identifier="foo_object_inout">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="inoutarg" direction="inout">
-            <type name="int*"/>
+            <type name="int*" c:identifier="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="inout2" c:identifier="foo_object_inout2">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="inoutarg">
-            <type name="int*"/>
+            <type name="int*" c:identifier="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="inout3" c:identifier="foo_object_inout3">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="inoutarg" direction="inout">
-            <type name="int*"/>
+            <type name="int*" c:identifier="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="in" c:identifier="foo_object_in">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="inarg">
-            <type name="int*"/>
+            <type name="int*" c:identifier="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="calleeowns" c:identifier="foo_object_calleeowns">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="toown" transfer="full">
-            <type name="GLib.Object*"/>
+            <type name="GLib.Object*" c:identifier="GObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="calleesowns" c:identifier="foo_object_calleesowns">
-        <return-value c:identifer="gint">
-          <type name="gint"/>
+        <return-value>
+          <type name="gint" c:identifier="gint"/>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
           <parameter name="toown1" transfer="full">
-            <type name="GLib.Object*"/>
+            <type name="GLib.Object*" c:identifier="GObject*"/>
           </parameter>
           <parameter name="toown2" transfer="full">
-            <type name="GLib.Object*"/>
+            <type name="GLib.Object*" c:identifier="GObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_strings" c:identifier="foo_object_get_strings">
-        <return-value c:identifer="GList*">
+        <return-value>
           <sequence c:owner="caller">
             <element-type c:identifier="char*"/>
           </sequence>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_objects" c:identifier="foo_object_get_objects">
-        <return-value c:identifer="GSList*">
+        <return-value>
           <sequence c:owner="caller">
             <element-type c:identifier="FooObject*"/>
           </sequence>
         </return-value>
         <parameters>
           <parameter name="object">
-            <type name="Object*"/>
+            <type name="Object*" c:identifier="FooObject*"/>
           </parameter>
         </parameters>
       </method>
       <property name="string">
-        <type name="gchararray"/>
+        <type name="gchararray" c:identifier="gchararray"/>
       </property>
     </class>
     <class name="Subobject"
            glib:type-name="FooSubobject"
            glib:get-type="foo_subobject_get_type">
       <constructor name="new" c:identifier="foo_subobject_new">
-        <return-value c:identifer="Subobject*">
-          <type name="Subobject*"/>
+        <return-value>
+          <type name="Subobject*" c:identifier="FooSubobject*"/>
         </return-value>
       </constructor>
     </class>
       <member name="FOO_ENUM_DELTA" value="2" glib:nick="delta"/>
     </enumeration>
     <function name="enum_type_method" c:identifier="foo_enum_type_method">
-      <return-value c:identifer="int">
-        <type name="int"/>
+      <return-value>
+        <type name="int" c:identifier="int"/>
       </return-value>
       <parameters>
         <parameter name="foo_enum">
-          <type name="EnumType"/>
+          <type name="EnumType" c:identifier="FooEnumType"/>
         </parameter>
       </parameters>
     </function>
                 glib:type-name="FooBoxed"
                 glib:get-type="foo_boxed_get_type">
       <constructor name="new" c:identifier="foo_boxed_new">
-        <return-value c:identifer="Boxed*">
-          <type name="Boxed*"/>
+        <return-value>
+          <type name="Boxed*" c:identifier="FooBoxed*"/>
         </return-value>
       </constructor>
       <method name="method" c:identifier="foo_boxed_method">
-        <return-value c:identifer="void">
-          <type name="void"/>
+        <return-value>
+          <type name="void" c:identifier="void"/>
         </return-value>
         <parameters>
           <parameter name="boxed">
-            <type name="Boxed*"/>
+            <type name="Boxed*" c:identifier="FooBoxed*"/>
           </parameter>
         </parameters>
       </method>
     </glib:boxed>
     <callback name="FooCallback">
-      <return-value c:identifer="gboolean">
-        <type name="gboolean"/>
+      <return-value>
+        <type name="gboolean" c:identifier="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="foo">
-          <type name="FooObject*"/>
+          <type name="FooObject*" c:identifier="FooObject*"/>
         </parameter>
         <parameter name="b">
-          <type name="gboolean"/>
+          <type name="gboolean" c:identifier="gboolean"/>
         </parameter>
         <parameter name="data">
-          <type name="gpointer"/>
+          <type name="gpointer" c:identifier="gpointer"/>
         </parameter>
       </parameters>
     </callback>
index 30a07f8..5cced68 100644 (file)
@@ -31,7 +31,7 @@ utility.gir: libutility.la utility.h $(SCANNER)
 Foo.gir: libfoo.la foo-object.h $(SCANNER)
        @PYTHONPATH=$(top_builddir) $(SCANNER) -v \
        --include=$(top_srcdir)/gir/gobject-2.0.gir \
-       --include=$(builddir)/utility.gir \
+       --include=$(top_builddir)/tests/parser/utility.gir \
        --library=libfoo.la \
        --namespace=Foo \
        --pkg gobject-2.0 \