diff options
author | Johan Dahlin <johan@gnome.org> | 2010-09-02 11:07:01 -0300 |
---|---|---|
committer | Johan Dahlin <johan@gnome.org> | 2010-09-02 12:37:54 -0300 |
commit | 5c25cabe5aa0385c224d519eedfd1df9e7e42187 (patch) | |
tree | 65a2bca8ceee20a9d0fa8dce27a30c0ee5eb1985 /giscanner/gdumpparser.py | |
parent | 0b0a3cc7705ca797bc8315ba0815644bef5d30fb (diff) | |
download | gobject-introspection-5c25cabe5aa0385c224d519eedfd1df9e7e42187.tar.gz |
[scanner] Simplify strip_identifer/strip_symbol
The strip_* functions are problematic since they
have a fatal switch which determines if the message should
kill the scanner. Change the api to make it easier to extend
with other logging categories and move over the callsites to
use the new message module
Diffstat (limited to 'giscanner/gdumpparser.py')
-rw-r--r-- | giscanner/gdumpparser.py | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py index 7f1d2290..d93a4645 100644 --- a/giscanner/gdumpparser.py +++ b/giscanner/gdumpparser.py @@ -27,6 +27,8 @@ from xml.etree.cElementTree import parse from . import ast from . import glibast +from . import message +from .transformer import TransformerException # GParamFlags G_PARAM_READABLE = 1 << 0 @@ -254,7 +256,10 @@ blob containing data gleaned from GObject's primitive introspection.""" klass = (glibast.GLibFlags if node.tag == 'flags' else glibast.GLibEnum) type_name = node.attrib['name'] - enum_name = self._transformer.strip_identifier_or_warn(type_name, fatal=True) + try: + enum_name = self._transformer.strip_identifier(type_name) + except TransformerException, e: + message.fatal(e) node = klass(enum_name, type_name, members, node.attrib['get-type']) self._namespace.append(node, replace=True) @@ -275,11 +280,12 @@ blob containing data gleaned from GObject's primitive introspection.""" return is_abstract = bool(xmlnode.attrib.get('abstract', False)) (get_type, c_symbol_prefix) = self._split_type_and_symbol_prefix(xmlnode) - node = glibast.GLibObject( - self._transformer.strip_identifier_or_warn(type_name, fatal=True), - None, - type_name, - get_type, c_symbol_prefix, is_abstract) + try: + object_name = self._transformer.strip_identifier(type_name) + except TransformerException, e: + message.fatal(e) + node = glibast.GLibObject(object_name, None, type_name, + get_type, c_symbol_prefix, is_abstract) self._parse_parents(xmlnode, node) self._introspect_properties(node, xmlnode) self._introspect_signals(node, xmlnode) @@ -291,10 +297,12 @@ blob containing data gleaned from GObject's primitive introspection.""" def _introspect_interface(self, xmlnode): type_name = xmlnode.attrib['name'] (get_type, c_symbol_prefix) = self._split_type_and_symbol_prefix(xmlnode) - node = glibast.GLibInterface( - self._transformer.strip_identifier_or_warn(type_name, fatal=True), - None, - type_name, get_type, c_symbol_prefix) + try: + interface_name = self._transformer.strip_identifier(type_name) + except TransformerException, e: + message.fatal(e) + node = glibast.GLibInterface(interface_name, None, type_name, + get_type, c_symbol_prefix) self._introspect_properties(node, xmlnode) self._introspect_signals(node, xmlnode) for child in xmlnode.findall('prerequisite'): @@ -379,11 +387,13 @@ blob containing data gleaned from GObject's primitive introspection.""" type_name = xmlnode.attrib['name'] is_abstract = bool(xmlnode.attrib.get('abstract', False)) (get_type, c_symbol_prefix) = self._split_type_and_symbol_prefix(xmlnode) - node = glibast.GLibObject( - self._transformer.strip_identifier_or_warn(type_name, fatal=True), - None, - type_name, - get_type, c_symbol_prefix, is_abstract) + try: + fundamental_name = self._transformer.strip_identifier(type_name) + except TransformerException, e: + message.fatal(e) + + node = glibast.GLibObject(fundamental_name, None, type_name, + get_type, c_symbol_prefix, is_abstract) self._parse_parents(xmlnode, node) node.fundamental = True self._introspect_implemented_interfaces(node, xmlnode) @@ -404,7 +414,10 @@ blob containing data gleaned from GObject's primitive introspection.""" field.writable = False def _pair_boxed_type(self, boxed): - name = self._transformer.strip_identifier_or_warn(boxed.type_name, fatal=True) + try: + name = self._transformer.strip_identifier(boxed.type_name) + except TransformerException, e: + message.fatal(e) pair_node = self._namespace.get(name) if not pair_node: boxed_item = glibast.GLibBoxedOther(name, boxed.type_name, |