summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com>2018-03-07 13:27:37 +0100
committerJuergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com>2018-03-07 13:31:01 +0100
commit4ae18f2fea08f44691bff8f4d73f943f530465f7 (patch)
tree52a42c0219e4f06f83bf6dea974d58237275bd4a
parent98cd6d944e5bbd2de99e834dcceb7809b2e8f320 (diff)
downloadqtivi-qface-4ae18f2fea08f44691bff8f4d73f943f530465f7.tar.gz
ensured YAML error reporting is always reported a string
-rw-r--r--qface/idl/listener.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/qface/idl/listener.py b/qface/idl/listener.py
index cd5e399..6967666 100644
--- a/qface/idl/listener.py
+++ b/qface/idl/listener.py
@@ -84,7 +84,7 @@ class DomainListener(TListener):
data = yaml.load('\n'.join(lines), Loader=Loader)
symbol._tags = data
except yaml.YAMLError as exc:
- click.secho(exc, fg='red')
+ click.secho(str(exc), fg='red')
def enterEveryRule(self, ctx):
log.debug('enter ' + ctx.__class__.__name__)
@@ -186,9 +186,18 @@ class DomainListener(TListener):
name = ctx.name.text
self.property = Property(name, self.interface)
modifier = ctx.propertyModifierSymbol()
+
if modifier:
self.property.readonly = bool(modifier.is_readonly)
self.property.const = bool(modifier.is_const)
+
+ if ctx.value:
+ try:
+ value = yaml.load(ctx.value.text, Loader=Loader)
+ self.property._value = value
+ except yaml.YAMLError as exc:
+ click.secho(exc, fg='red')
+
self.parse_annotations(ctx, self.property)
self.parse_type(ctx, self.property.type)
contextMap[ctx] = self.property