gobject-introspection r252 - in trunk: . giscanner tests/parser



Author: johan
Date: Mon Apr 28 19:49:46 2008
New Revision: 252
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=252&view=rev

Log:
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.



Modified:
   trunk/ChangeLog
   trunk/giscanner/ast.py
   trunk/giscanner/girwriter.py
   trunk/giscanner/glibast.py
   trunk/giscanner/glibtransformer.py
   trunk/tests/parser/Foo-expected.gir
   trunk/tests/parser/utility-expected.gir

Modified: trunk/giscanner/ast.py
==============================================================================
--- trunk/giscanner/ast.py	(original)
+++ trunk/giscanner/ast.py	Mon Apr 28 19:49:46 2008
@@ -44,7 +44,7 @@
 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 @@
     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 Class(Node):
     def __init__(self, name, parent):
         Node.__init__(self, name)
+        self.ctype = name
         self.parent = parent
         self.methods = []
         self.constructors = []

Modified: trunk/giscanner/girwriter.py
==============================================================================
--- trunk/giscanner/girwriter.py	(original)
+++ trunk/giscanner/girwriter.py	Mon Apr 28 19:49:46 2008
@@ -99,8 +99,12 @@
             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 @@
             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 @@
         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 @@
                 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)]
 

Modified: trunk/giscanner/glibast.py
==============================================================================
--- trunk/giscanner/glibast.py	(original)
+++ trunk/giscanner/glibast.py	Mon Apr 28 19:49:46 2008
@@ -24,6 +24,7 @@
 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 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 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 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 = []

Modified: trunk/giscanner/glibtransformer.py
==============================================================================
--- trunk/giscanner/glibtransformer.py	(original)
+++ trunk/giscanner/glibtransformer.py	Mon Apr 28 19:49:46 2008
@@ -139,8 +139,7 @@
 
     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):

Modified: trunk/tests/parser/Foo-expected.gir
==============================================================================
--- trunk/tests/parser/Foo-expected.gir	(original)
+++ trunk/tests/parser/Foo-expected.gir	Mon Apr 28 19:49:46 2008
@@ -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>

Modified: trunk/tests/parser/utility-expected.gir
==============================================================================
--- trunk/tests/parser/utility-expected.gir	(original)
+++ trunk/tests/parser/utility-expected.gir	Mon Apr 28 19:49:46 2008
@@ -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">



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]