Split out nodes to ast.py and glibast.py
authorJohan Dahlin <johan@gnome.org>
Sat, 26 Apr 2008 02:37:07 +0000 (02:37 +0000)
committerJohan Dahlin <johan@src.gnome.org>
Sat, 26 Apr 2008 02:37:07 +0000 (02:37 +0000)
2008-04-25  Johan Dahlin  <johan@gnome.org>

    * giscanner/Makefile.am:
    * giscanner/ast.py:
    * giscanner/gidlparser.py:
    * giscanner/gidlwriter.py:
    * giscanner/girwriter.py:
    * giscanner/glibast.py:
    * giscanner/glibtransformer.py:
    * giscanner/transformer.py:
    Split out nodes to ast.py and glibast.py

svn path=/trunk/; revision=229

ChangeLog
giscanner/Makefile.am
giscanner/ast.py [new file with mode: 0644]
giscanner/gidlparser.py
giscanner/gidlwriter.py
giscanner/girwriter.py
giscanner/glibast.py [new file with mode: 0644]
giscanner/glibtransformer.py
giscanner/transformer.py

index de9fb33..5ea4c40 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-04-25  Johan Dahlin  <johan@gnome.org>
+
+       * giscanner/Makefile.am:
+       * giscanner/ast.py:
+       * giscanner/gidlparser.py:
+       * giscanner/gidlwriter.py:
+       * giscanner/girwriter.py:
+       * giscanner/glibast.py:
+       * giscanner/glibtransformer.py:
+       * giscanner/transformer.py:
+       Split out nodes to ast.py and glibast.py
+
 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
 
        * giscanner/Makefile.am:
index b8c18ba..8dfa3a8 100644 (file)
@@ -27,7 +27,9 @@ pkgpyexecdir = $(pyexecdir)/giscanner
 pkgpyexec_LTLIBRARIES = _giscanner.la
 pkgpyexec_PYTHON =             \
        __init__.py             \
+       ast.py                  \
        cgobject.py             \
+       gidlast.py              \
        gidlparser.py           \
        gidlwriter.py           \
        girwriter.py            \
diff --git a/giscanner/ast.py b/giscanner/ast.py
new file mode 100644 (file)
index 0000000..7fe4d5f
--- /dev/null
@@ -0,0 +1,149 @@
+# -*- Mode: Python -*-
+# GObject-Introspection - a framework for introspecting GObject libraries
+# Copyright (C) 2008  Johan Dahlin
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+
+
+class Node(object):
+    def __init__(self, name=None):
+        self.name = name
+
+
+class Function(Node):
+    def __init__(self, name, retval, parameters, symbol):
+        Node.__init__(self, name)
+        self.retval = retval
+        self.parameters = parameters
+        self.symbol = symbol
+
+    def __repr__(self):
+        return '%s(%r, %r, %r)' % (self.__class__.__name__,
+                                   self.name, self.retval,
+                                   self.parameters)
+
+
+class VFunction(Function):
+    pass
+
+
+class Parameter(Node):
+    def __init__(self, name, type):
+        Node.__init__(self, name)
+        self.type = type
+        self.direction = 'in'
+        self.transfer = 'none'
+
+    def __repr__(self):
+        return 'Parameter(%r, %r)' % (self.name, self.type)
+
+
+class Enum(Node):
+    def __init__(self, name, members):
+        Node.__init__(self, name)
+        self.members = members
+
+    def __repr__(self):
+        return 'Enum(%r, %r)' % (self.name, self.members)
+
+
+class Member(Node):
+    def __init__(self, name, value):
+        Node.__init__(self, name)
+        self.value = value
+
+    def __repr__(self):
+        return 'Member(%r, %r)' % (self.name, self.value)
+
+
+class Struct(Node):
+    def __init__(self, name):
+        Node.__init__(self, name)
+        self.fields = []
+
+    def __repr__(self):
+        return 'Struct(%r)' % (self.name,)
+
+
+class Return(Node):
+    def __init__(self, type):
+        Node.__init__(self)
+        self.type = type
+        self.transfer = 'none'
+
+    def __repr__(self):
+        return 'Return(%r)' % (self.type,)
+
+
+class Class(Node):
+    def __init__(self, name, parent):
+        Node.__init__(self, name)
+        self.parent = parent
+        self.methods = []
+        self.constructors = []
+        self.properties = []
+        self.fields = []
+
+    def __repr__(self):
+        return '%s(%r, %r, %r)' % (
+            self.__class__.__name__,
+            self.name, self.parent, self.methods)
+
+
+class Interface(Node):
+    def __init__(self, name):
+        Node.__init__(self, name)
+        self.methods = []
+        self.properties = []
+        self.fields = []
+
+    def __repr__(self):
+        return '%s(%r, %r)' % (
+            self.__class__.__name__,
+            self.name, self.methods)
+
+
+class Constant(Node):
+    def __init__(self, name, type, value):
+        Node.__init__(self, name)
+        self.type = type
+        self.value = value
+
+    def __repr__(self):
+        return 'Constant(%r, %r, %r)' % (
+            self.name, self.type, self.value)
+
+
+class Property(Node):
+    def __init__(self, name, type):
+        Node.__init__(self, name)
+        self.type = type
+
+    def __repr__(self):
+        return '%s(%r, %r, %r)' % (
+            self.__class__.__name__,
+            self.name, self.type, self.value)
+
+
+class Callback(Node):
+    def __init__(self, name, retval, parameters):
+        Node.__init__(self, name)
+        self.retval = retval
+        self.parameters = parameters
+
+    def __repr__(self):
+        return 'Callback(%r, %r, %r)' % (
+            self.name, self.retval, self.parameters)
index d680d9d..a225975 100644 (file)
@@ -19,7 +19,7 @@
 
 from xml.etree.ElementTree import parse
 
-from .glibtransformer import GLibObject
+from .glibast import GLibObject
 
 
 class GIDLParser(object):
index 757169a..db1aa79 100644 (file)
@@ -19,9 +19,9 @@
 
 from __future__ import with_statement
 
-from .glibtransformer import (GLibBoxed, GLibEnum, GLibEnumMember,
-                              GLibFlags, GLibObject, GLibInterface)
-from .transformer import Callback, Class, Enum, Function, Interface
+from .ast import Callback, Class, Enum, Function, Interface
+from .glibast import (GLibBoxed, GLibEnum, GLibEnumMember,
+                      GLibFlags, GLibObject, GLibInterface)
 from .xmlwriter import XMLWriter
 
 
index 3ea3990..bb3b033 100644 (file)
@@ -19,9 +19,9 @@
 
 from __future__ import with_statement
 
-from .glibtransformer import (GLibBoxed, GLibEnum, GLibEnumMember,
-                              GLibFlags, GLibObject, GLibInterface)
-from .transformer import Callback, Class, Enum, Function, Interface
+from .ast import Callback, Class, Enum, Function, Interface
+from .glibast import (GLibBoxed, GLibEnum, GLibEnumMember,
+                      GLibFlags, GLibObject, GLibInterface)
 from .xmlwriter import XMLWriter
 
 
diff --git a/giscanner/glibast.py b/giscanner/glibast.py
new file mode 100644 (file)
index 0000000..bc5b2f7
--- /dev/null
@@ -0,0 +1,79 @@
+# -*- Mode: Python -*-
+# GObject-Introspection - a framework for introspecting GObject libraries
+# Copyright (C) 2008  Johan Dahlin
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+
+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.type_name = type_name
+        self.get_type = get_type
+
+    def __repr__(self):
+        return '%s(%r, %r, %r)' % (
+            self.__class__.__name__,
+            self.name,
+            self.members,
+            self.get_type)
+
+
+class GLibFlags(GLibEnum):
+    pass
+
+
+class GLibEnumMember(Member):
+    def __init__(self, name, value, nick):
+        Member.__init__(self, name, value)
+        self.nick = nick
+
+
+class GLibObject(Class):
+    def __init__(self, name, parent, type_name, get_type):
+        Class.__init__(self, name, parent)
+        self.type_name = type_name
+        self.get_type = get_type
+        self.signals = []
+
+class GLibBoxed(Struct):
+    def __init__(self, name, type_name, get_type):
+        Struct.__init__(self, name)
+        self.constructors = []
+        self.methods = []
+        self.type_name = type_name
+        self.get_type = get_type
+
+
+class GLibInterface(Interface):
+    def __init__(self, name, type_name, get_type):
+        Interface.__init__(self, name)
+        self.type_name = type_name
+        self.get_type = get_type
+        self.signals = []
+
+
+class GLibProperty(Property):
+    pass
+
+
+class GLibSignal(Node):
+    def __init__(self, name, retval):
+        Node.__init__(self, name)
+        self.retval = retval
+        self.parameters = []
index f288e21..54ff49d 100644 (file)
@@ -23,8 +23,11 @@ import os
 
 from . import cgobject
 from .odict import odict
-from .transformer import (Callback, Class, Enum, Function, Interface,
-                          Member, Node, Parameter, Property, Return, Struct)
+from .ast import (Callback, Enum, Function,
+                  Parameter, Property, Return, Struct)
+from .glibast import (GLibBoxed, GLibEnum, GLibEnumMember, GLibFlags, GLibInterface,
+                      GLibObject, GLibSignal)
+
 
 # Copied from h2defs.py
 _upperstr_pat1 = re.compile(r'([^A-Z])([A-Z])')
@@ -50,63 +53,6 @@ def resolve_libtool(libname):
     return libname
 
 
-class GLibEnum(Enum):
-    def __init__(self, name, members, type_name, get_type):
-        Enum.__init__(self, name, members)
-        self.type_name = type_name
-        self.get_type = get_type
-
-    def __repr__(self):
-        return '%s(%r, %r, %r)' % (
-            self.__class__.__name__,
-            self.name,
-            self.members,
-            self.get_type)
-
-
-class GLibFlags(GLibEnum):
-    pass
-
-
-class GLibEnumMember(Member):
-    def __init__(self, name, value, nick):
-        Member.__init__(self, name, value)
-        self.nick = nick
-
-
-class GLibObject(Class):
-    def __init__(self, name, parent, type_name, get_type):
-        Class.__init__(self, name, parent)
-        self.type_name = type_name
-        self.get_type = get_type
-        self.signals = []
-
-class GLibBoxed(Struct):
-    def __init__(self, name, type_name, get_type):
-        Struct.__init__(self, name)
-        self.constructors = []
-        self.methods = []
-        self.type_name = type_name
-        self.get_type = get_type
-
-
-class GLibInterface(Interface):
-    def __init__(self, name, type_name, get_type):
-        Interface.__init__(self, name)
-        self.type_name = type_name
-        self.get_type = get_type
-        self.signals = []
-
-
-class GLibProperty(Property):
-    pass
-
-
-class GLibSignal(Node):
-    def __init__(self, name, retval):
-        Node.__init__(self, name)
-        self.retval = retval
-        self.parameters = []
 
 
 class GLibTransformer(object):
index f4aee93..6a7a6bb 100644 (file)
 #
 
 import giscanner
-
-
-class Node(object):
-    def __init__(self, name=None):
-        self.name = name
-
-
-class Function(Node):
-    def __init__(self, name, retval, parameters, symbol):
-        Node.__init__(self, name)
-        self.retval = retval
-        self.parameters = parameters
-        self.symbol = symbol
-
-    def __repr__(self):
-        return '%s(%r, %r, %r)' % (self.__class__.__name__,
-                                   self.name, self.retval,
-                                   self.parameters)
-
-
-class VFunction(Function):
-    pass
-
-
-class Parameter(Node):
-    def __init__(self, name, type):
-        Node.__init__(self, name)
-        self.type = type
-        self.direction = 'in'
-        self.transfer = 'none'
-
-    def __repr__(self):
-        return 'Parameter(%r, %r)' % (self.name, self.type)
-
-
-class Enum(Node):
-    def __init__(self, name, members):
-        Node.__init__(self, name)
-        self.members = members
-
-    def __repr__(self):
-        return 'Enum(%r, %r)' % (self.name, self.members)
-
-
-class Member(Node):
-    def __init__(self, name, value):
-        Node.__init__(self, name)
-        self.value = value
-
-    def __repr__(self):
-        return 'Member(%r, %r)' % (self.name, self.value)
-
-
-class Struct(Node):
-    def __init__(self, name):
-        Node.__init__(self, name)
-        self.fields = []
-
-    def __repr__(self):
-        return 'Struct(%r)' % (self.name,)
-
-
-class Return(Node):
-    def __init__(self, type):
-        Node.__init__(self)
-        self.type = type
-        self.transfer = 'none'
-
-    def __repr__(self):
-        return 'Return(%r)' % (self.type,)
-
-
-class Class(Node):
-    def __init__(self, name, parent):
-        Node.__init__(self, name)
-        self.parent = parent
-        self.methods = []
-        self.constructors = []
-        self.properties = []
-        self.fields = []
-
-    def __repr__(self):
-        return '%s(%r, %r, %r)' % (
-            self.__class__.__name__,
-            self.name, self.parent, self.methods)
-
-
-class Interface(Node):
-    def __init__(self, name):
-        Node.__init__(self, name)
-        self.methods = []
-        self.properties = []
-        self.fields = []
-
-    def __repr__(self):
-        return '%s(%r, %r)' % (
-            self.__class__.__name__,
-            self.name, self.methods)
-
-
-class Constant(Node):
-    def __init__(self, name, type, value):
-        Node.__init__(self, name)
-        self.type = type
-        self.value = value
-
-    def __repr__(self):
-        return 'Constant(%r, %r, %r)' % (
-            self.name, self.type, self.value)
-
-
-class Property(Node):
-    def __init__(self, name, type):
-        Node.__init__(self, name)
-        self.type = type
-
-    def __repr__(self):
-        return '%s(%r, %r, %r)' % (
-            self.__class__.__name__,
-            self.name, self.type, self.value)
-
-
-class Callback(Node):
-    def __init__(self, name, retval, parameters):
-        Node.__init__(self, name)
-        self.retval = retval
-        self.parameters = parameters
-
-    def __repr__(self):
-        return 'Callback(%r, %r, %r)' % (
-            self.name, self.retval, self.parameters)
+from giscanner.ast import (Callback, Enum, Function, Member, Parameter,
+                           Return, Struct)
 
 
 class Transformer(object):