summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2008-05-05 23:41:40 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-05-05 23:41:40 +0000
commit01732433f654cb655ae05752742879ef10970789 (patch)
tree91fe0b76bd61f06a1e40e78463efd1441279cb6c
parentcd82941d248708edb4ff043fe9cea7a21fe48961 (diff)
downloadgobject-introspection-01732433f654cb655ae05752742879ef10970789.tar.gz
Move sourcescanner symbols to the sourcescanner module, instead of in the
2008-05-05 Johan Dahlin <johan@gnome.org> * giscanner/__init__.py: * giscanner/sourcescanner.py: * giscanner/transformer.py: Move sourcescanner symbols to the sourcescanner module, instead of in the global __init__ namespace. svn path=/trunk/; revision=266
-rw-r--r--ChangeLog8
-rw-r--r--giscanner/__init__.py54
-rw-r--r--giscanner/sourcescanner.py54
-rw-r--r--giscanner/transformer.py38
4 files changed, 82 insertions, 72 deletions
diff --git a/ChangeLog b/ChangeLog
index 0544c210..e46e7492 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-05-05 Johan Dahlin <johan@gnome.org>
+
+ * giscanner/__init__.py:
+ * giscanner/sourcescanner.py:
+ * giscanner/transformer.py:
+ Move sourcescanner symbols to the sourcescanner module, instead
+ of in the global __init__ namespace.
+
2008-05-03 Johan Dahlin <johan@gnome.org>
* giscanner/glibtransformer.py:
diff --git a/giscanner/__init__.py b/giscanner/__init__.py
index 532d779b..22797ada 100644
--- a/giscanner/__init__.py
+++ b/giscanner/__init__.py
@@ -18,57 +18,3 @@
# 02110-1301, USA.
#
-(CSYMBOL_TYPE_INVALID,
- CSYMBOL_TYPE_CONST,
- CSYMBOL_TYPE_OBJECT,
- CSYMBOL_TYPE_FUNCTION,
- CSYMBOL_TYPE_STRUCT,
- CSYMBOL_TYPE_UNION,
- CSYMBOL_TYPE_ENUM,
- CSYMBOL_TYPE_TYPEDEF) = range(8)
-
-(CTYPE_INVALID,
- CTYPE_VOID,
- CTYPE_BASIC_TYPE,
- CTYPE_TYPEDEF,
- CTYPE_STRUCT,
- CTYPE_UNION,
- CTYPE_ENUM,
- CTYPE_POINTER,
- CTYPE_ARRAY,
- CTYPE_FUNCTION) = range(10)
-
-STORAGE_CLASS_NONE = 0
-STORAGE_CLASS_TYPEDEF = 1 << 1
-STORAGE_CLASS_EXTERN = 1 << 2
-STORAGE_CLASS_STATIC = 1 << 3
-STORAGE_CLASS_AUTO = 1 << 4
-STORAGE_CLASS_REGISTER = 1 << 5
-
-TYPE_QUALIFIER_NONE = 0
-TYPE_QUALIFIER_CONST = 1 << 1
-TYPE_QUALIFIER_RESTRICT = 1 << 2
-TYPE_QUALIFIER_VOLATILE = 1 << 3
-
-FUNCTION_NONE = 0
-FUNCTION_INLINE = 1 << 1
-
-(UNARY_ADDRESS_OF,
- UNARY_POINTER_INDIRECTION,
- UNARY_PLUS,
- UNARY_MINUS,
- UNARY_BITWISE_COMPLEMENT,
- UNARY_LOGICAL_NEGATION) = range(6)
-
-def symbol_type_name(symbol_type):
- return {
- CSYMBOL_TYPE_INVALID: 'invalid',
- CSYMBOL_TYPE_CONST: 'const',
- CSYMBOL_TYPE_OBJECT: 'object',
- CSYMBOL_TYPE_FUNCTION: 'function',
- CSYMBOL_TYPE_STRUCT: 'struct',
- CSYMBOL_TYPE_UNION: 'union',
- CSYMBOL_TYPE_ENUM: 'enum',
- CSYMBOL_TYPE_TYPEDEF: 'typedef'
- }.get(symbol_type)
-
diff --git a/giscanner/sourcescanner.py b/giscanner/sourcescanner.py
index 583db6b7..1aed1202 100644
--- a/giscanner/sourcescanner.py
+++ b/giscanner/sourcescanner.py
@@ -23,6 +23,60 @@ import subprocess
from . import _giscanner
+(CSYMBOL_TYPE_INVALID,
+ CSYMBOL_TYPE_CONST,
+ CSYMBOL_TYPE_OBJECT,
+ CSYMBOL_TYPE_FUNCTION,
+ CSYMBOL_TYPE_STRUCT,
+ CSYMBOL_TYPE_UNION,
+ CSYMBOL_TYPE_ENUM,
+ CSYMBOL_TYPE_TYPEDEF) = range(8)
+
+(CTYPE_INVALID,
+ CTYPE_VOID,
+ CTYPE_BASIC_TYPE,
+ CTYPE_TYPEDEF,
+ CTYPE_STRUCT,
+ CTYPE_UNION,
+ CTYPE_ENUM,
+ CTYPE_POINTER,
+ CTYPE_ARRAY,
+ CTYPE_FUNCTION) = range(10)
+
+STORAGE_CLASS_NONE = 0
+STORAGE_CLASS_TYPEDEF = 1 << 1
+STORAGE_CLASS_EXTERN = 1 << 2
+STORAGE_CLASS_STATIC = 1 << 3
+STORAGE_CLASS_AUTO = 1 << 4
+STORAGE_CLASS_REGISTER = 1 << 5
+
+TYPE_QUALIFIER_NONE = 0
+TYPE_QUALIFIER_CONST = 1 << 1
+TYPE_QUALIFIER_RESTRICT = 1 << 2
+TYPE_QUALIFIER_VOLATILE = 1 << 3
+
+FUNCTION_NONE = 0
+FUNCTION_INLINE = 1 << 1
+
+(UNARY_ADDRESS_OF,
+ UNARY_POINTER_INDIRECTION,
+ UNARY_PLUS,
+ UNARY_MINUS,
+ UNARY_BITWISE_COMPLEMENT,
+ UNARY_LOGICAL_NEGATION) = range(6)
+
+def symbol_type_name(symbol_type):
+ return {
+ CSYMBOL_TYPE_INVALID: 'invalid',
+ CSYMBOL_TYPE_CONST: 'const',
+ CSYMBOL_TYPE_OBJECT: 'object',
+ CSYMBOL_TYPE_FUNCTION: 'function',
+ CSYMBOL_TYPE_STRUCT: 'struct',
+ CSYMBOL_TYPE_UNION: 'union',
+ CSYMBOL_TYPE_ENUM: 'enum',
+ CSYMBOL_TYPE_TYPEDEF: 'typedef'
+ }.get(symbol_type)
+
class SourceType(object):
def __init__(self, scanner, stype):
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index 86e51c14..c5b48ebe 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -18,11 +18,13 @@
# 02110-1301, USA.
#
-import giscanner
-
from giscanner.ast import (Callback, Enum, Function, Member, Parameter,
Return, Sequence, Struct, Type)
-from giscanner.sourcescanner import SourceSymbol
+from giscanner.sourcescanner import (
+ SourceSymbol, symbol_type_name, CTYPE_POINTER, CTYPE_TYPEDEF, CTYPE_VOID,
+ CTYPE_BASIC_TYPE, CTYPE_FUNCTION, CTYPE_STRUCT, CSYMBOL_TYPE_FUNCTION,
+ CSYMBOL_TYPE_TYPEDEF, CSYMBOL_TYPE_STRUCT, CSYMBOL_TYPE_ENUM,
+ CSYMBOL_TYPE_UNION, CSYMBOL_TYPE_OBJECT)
class Transformer(object):
@@ -66,34 +68,34 @@ class Transformer(object):
if stype is None:
stype = symbol.type
- if stype == giscanner.CSYMBOL_TYPE_FUNCTION:
+ if stype == CSYMBOL_TYPE_FUNCTION:
return self._create_function(symbol)
- elif stype == giscanner.CSYMBOL_TYPE_TYPEDEF:
- if (symbol.base_type.type == giscanner.CTYPE_POINTER and
- symbol.base_type.base_type.type == giscanner.CTYPE_FUNCTION):
+ elif stype == CSYMBOL_TYPE_TYPEDEF:
+ if (symbol.base_type.type == CTYPE_POINTER and
+ symbol.base_type.base_type.type == CTYPE_FUNCTION):
node = self._create_callback(symbol)
- elif symbol.base_type.type == giscanner.CTYPE_STRUCT:
+ elif symbol.base_type.type == CTYPE_STRUCT:
node = self._create_typedef_struct(symbol)
# This prevents an infinite recursion when scanning structures with
# private types not exposed in headers.
- elif symbol.base_type.type == giscanner.CSYMBOL_TYPE_TYPEDEF:
+ elif symbol.base_type.type == CSYMBOL_TYPE_TYPEDEF:
return
else:
node = self._traverse_one(symbol, symbol.base_type.type)
return node
- elif stype == giscanner.CSYMBOL_TYPE_STRUCT:
+ elif stype == CSYMBOL_TYPE_STRUCT:
return self._create_struct(symbol)
- elif stype == giscanner.CSYMBOL_TYPE_ENUM:
+ elif stype == CSYMBOL_TYPE_ENUM:
return self._create_enum(symbol)
- elif stype == giscanner.CSYMBOL_TYPE_OBJECT:
+ elif stype == CSYMBOL_TYPE_OBJECT:
return self._create_object(symbol)
- elif stype == giscanner.CSYMBOL_TYPE_UNION:
+ elif stype == CSYMBOL_TYPE_UNION:
# Unions are not supported
pass
else:
raise NotImplementedError(
'Transformer: unhandled symbol: %r of type %r'
- % (symbol.ident, giscanner.symbol_type_name(stype)))
+ % (symbol.ident, symbol_type_name(stype)))
def _create_enum(self, symbol):
members = []
@@ -117,13 +119,13 @@ class Transformer(object):
def _create_source_type(self, source_type):
if source_type is None:
return 'None'
- if source_type.type == giscanner.CTYPE_VOID:
+ if source_type.type == CTYPE_VOID:
value = 'void'
- elif source_type.type == giscanner.CTYPE_BASIC_TYPE:
+ elif source_type.type == CTYPE_BASIC_TYPE:
value = source_type.name
- elif source_type.type == giscanner.CTYPE_TYPEDEF:
+ elif source_type.type == CTYPE_TYPEDEF:
value = source_type.name
- elif source_type.type == giscanner.CTYPE_POINTER:
+ elif source_type.type == CTYPE_POINTER:
value = self._create_source_type(source_type.base_type) + '*'
else:
print 'BUILDER: Unhandled source type: %d' % (source_type.type,)