From: Johan Dahlin Date: Mon, 5 May 2008 23:41:40 +0000 (+0000) Subject: Move sourcescanner symbols to the sourcescanner module, instead of in the X-Git-Tag: GOBJECT_INTROSPECTION_0_5_0~273 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=01732433f654cb655ae05752742879ef10970789;p=platform%2Fupstream%2Fgobject-introspection.git Move sourcescanner symbols to the sourcescanner module, instead of in the 2008-05-05 Johan Dahlin * 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 --- diff --git a/ChangeLog b/ChangeLog index 0544c21..e46e749 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-05 Johan Dahlin + + * 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 * giscanner/glibtransformer.py: diff --git a/giscanner/__init__.py b/giscanner/__init__.py index 532d779..22797ad 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 583db6b..1aed120 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 86e51c1..c5b48eb 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,)