diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-06-27 14:26:17 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-06-27 14:26:17 +0000 |
commit | 2c33ab54e79608d34df14719c839dad8be7ef685 (patch) | |
tree | 22032990d7f2619f5316be55a1c9a824a22d841a /tools | |
parent | 705f89de7a8b99f0a165d4b137fa3fd40776d8e4 (diff) |
check conflict in CLASS fields redefinition
svn path=/trunk/; revision=22203
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/asn2wrs.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py index 3bf16bbfae..3bb3573360 100755 --- a/tools/asn2wrs.py +++ b/tools/asn2wrs.py @@ -6588,13 +6588,29 @@ def set_type_to_class(cls, fld, pars): typename = 'OpenType' if (len(pars) > 0): typename = pars[0] + else: + pars.append(typename) typeref = None if (len(pars) > 1): + if (isinstance(pars[1], Class_Ref)): + pars[1] = pars[1].val typeref = pars[1] - if object_class_types.has_key(key): return False - if object_class_typerefs.has_key(key): return False - if object_class_classrefs.has_key(key): return False + msg = None + if object_class_types.has_key(key): + msg = object_class_types[key]().type + if object_class_typerefs.has_key(key): + msg = "TypeReference " + object_class_typerefs[key] + if object_class_classrefs.has_key(key): + msg = "ClassReference " + object_class_classrefs[key] + + if msg == ' '.join(pars): + msg = None + + if msg: + msg0 = "Can not define CLASS field %s as '%s'\n" % (key, ' '.join(pars)) + msg1 = "Already defined as '%s'" % (msg) + raise msg0 + msg1 if (typename == 'ClassReference'): if not typeref: return False |