diff options
author | Andreas Volz <andreas.volz@tux-style.com> | 2011-11-29 21:10:41 +0100 |
---|---|---|
committer | Andreas Volz <andreas.volz@tux-style.com> | 2011-11-29 21:10:41 +0100 |
commit | cee7aaca54802b7ee5fdac84808712f709ea7405 (patch) | |
tree | 19b1764cf7504017b568e148191bf5274c22ffdb | |
parent | 0522a1eb295db561126291b8bd6cf3d9aeeef655 (diff) | |
download | dbus-c++-cee7aaca54802b7ee5fdac84808712f709ea7405.tar.gz |
NO FUNCTIONAL CHANGES!!
Only reformated stupid astyle formating; it seems the code inside a string confused astyle...
-rw-r--r-- | tools/generator_utils.cpp | 274 |
1 files changed, 137 insertions, 137 deletions
diff --git a/tools/generator_utils.cpp b/tools/generator_utils.cpp index 2ccf313..19df2b3 100644 --- a/tools/generator_utils.cpp +++ b/tools/generator_utils.cpp @@ -42,140 +42,140 @@ const char *dbus_includes = "\n\ #include <cassert>\n\ "; - void underscorize(string &str) - { - for (unsigned int i = 0; i < str.length(); ++i) - { - if (!isalpha(str[i]) && !isdigit(str[i])) str[i] = '_'; - } - } - - string stub_name(string name) - { - underscorize(name); - - return "_" + name + "_stub"; - } - - const char *atomic_type_to_string(char t) - { - static struct - { - char type; - const char *name; - } atos[] = - { - { 'y', "uint8_t" }, - { 'b', "bool" }, - { 'n', "int16_t" }, - { 'q', "uint16_t" }, - { 'i', "int32_t" }, - { 'u', "uint32_t" }, - { 'x', "int64_t" }, - { 't', "uint64_t" }, - { 'd', "double" }, - { 's', "std::string" }, - { 'o', "::DBus::Path" }, - { 'g', "::DBus::Signature" }, - { 'v', "::DBus::Variant" }, - { '\0', "" } - }; - int i; - - for (i = 0; atos[i].type; ++i) - { - if (atos[i].type == t) break; - } - return atos[i].name; - } - - static void _parse_signature(const string &signature, string &type, unsigned int &i, bool only_once = false) - { - /*cout << "signature: " << signature << endl; - cout << "type: " << type << endl; - cout << "i: " << i << ", signature[i]: " << signature[i] << endl;*/ - - for (; i < signature.length(); ++i) - { - switch (signature[i]) - { - case 'a': - { - switch (signature[++i]) - { - case '{': - { - type += "std::map< "; - ++i; - _parse_signature(signature, type, i); - type += " >"; - - break; - } - case '(': - { - type += "std::vector< ::DBus::Struct< "; - ++i; - _parse_signature(signature, type, i); - type += " > >"; - - break; - } - default: - { - type += "std::vector< "; - _parse_signature(signature, type, i, true); - - type += " >"; - - break; - } - } - break; - } - case '(': - { - type += "::DBus::Struct< "; - ++i; - - _parse_signature(signature, type, i); - - type += " >"; - break; - } - case ')': - case '}': - { - return; - } - default: - { - const char *atom = atomic_type_to_string(signature[i]); - if (!atom) - { - cerr << "invalid signature" << endl; - exit(-1); - } - type += atom; - - break; - } - } - - if (only_once) - return; - - if (i + 1 < signature.length() && signature[i + 1] != ')' && signature[i + 1] != '}') - { - type += ", "; - } - } - } - - string signature_to_type(const string &signature) - { - string type; - unsigned int i = 0; - _parse_signature(signature, type, i); - return type; - } +void underscorize(string &str) +{ + for (unsigned int i = 0; i < str.length(); ++i) + { + if (!isalpha(str[i]) && !isdigit(str[i])) str[i] = '_'; + } +} + +string stub_name(string name) +{ + underscorize(name); + + return "_" + name + "_stub"; +} + +const char *atomic_type_to_string(char t) +{ + static struct + { + char type; + const char *name; + } atos[] = + { + { 'y', "uint8_t" }, + { 'b', "bool" }, + { 'n', "int16_t" }, + { 'q', "uint16_t" }, + { 'i', "int32_t" }, + { 'u', "uint32_t" }, + { 'x', "int64_t" }, + { 't', "uint64_t" }, + { 'd', "double" }, + { 's', "std::string" }, + { 'o', "::DBus::Path" }, + { 'g', "::DBus::Signature" }, + { 'v', "::DBus::Variant" }, + { '\0', "" } + }; + int i; + + for (i = 0; atos[i].type; ++i) + { + if (atos[i].type == t) break; + } + return atos[i].name; +} + +static void _parse_signature(const string &signature, string &type, unsigned int &i, bool only_once = false) +{ + /*cout << "signature: " << signature << endl; + cout << "type: " << type << endl; + cout << "i: " << i << ", signature[i]: " << signature[i] << endl;*/ + + for (; i < signature.length(); ++i) + { + switch (signature[i]) + { + case 'a': + { + switch (signature[++i]) + { + case '{': + { + type += "std::map< "; + ++i; + _parse_signature(signature, type, i); + type += " >"; + + break; + } + case '(': + { + type += "std::vector< ::DBus::Struct< "; + ++i; + _parse_signature(signature, type, i); + type += " > >"; + + break; + } + default: + { + type += "std::vector< "; + _parse_signature(signature, type, i, true); + + type += " >"; + + break; + } + } + break; + } + case '(': + { + type += "::DBus::Struct< "; + ++i; + + _parse_signature(signature, type, i); + + type += " >"; + break; + } + case ')': + case '}': + { + return; + } + default: + { + const char *atom = atomic_type_to_string(signature[i]); + if (!atom) + { + cerr << "invalid signature" << endl; + exit(-1); + } + type += atom; + + break; + } + } + + if (only_once) + return; + + if (i + 1 < signature.length() && signature[i + 1] != ')' && signature[i + 1] != '}') + { + type += ", "; + } + } +} + +string signature_to_type(const string &signature) +{ + string type; + unsigned int i = 0; + _parse_signature(signature, type, i); + return type; +} |