summaryrefslogtreecommitdiffstats
path: root/scripts/qapi
diff options
context:
space:
mode:
authorMarkus Armbruster2019-09-14 17:34:55 +0200
committerMarkus Armbruster2019-09-24 14:07:23 +0200
commit14c32795024c815316337b019bdf88d76b429af8 (patch)
tree95f3589c5ec7e15622843f3cdf588176743a3ba3 /scripts/qapi
parentqapi: Use quotes more consistently in frontend error messages (diff)
downloadqemu-14c32795024c815316337b019bdf88d76b429af8.tar.gz
qemu-14c32795024c815316337b019bdf88d76b429af8.tar.xz
qemu-14c32795024c815316337b019bdf88d76b429af8.zip
qapi: Improve reporting of lexical errors
Show text up to next structural character, whitespace, or quote character instead of just the first character. Forgotten quotes now get reported like "Stray 'command'" instead of "Stray 'c'". Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190914153506.2151-9-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'scripts/qapi')
-rw-r--r--scripts/qapi/common.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index 142ab276ff..b3383b17ef 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -559,7 +559,11 @@ class QAPISchemaParser(object):
self.line += 1
self.line_pos = self.cursor
elif not self.tok.isspace():
- raise QAPIParseError(self, "Stray '%s'" % self.tok)
+ # Show up to next structural, whitespace or quote
+ # character
+ match = re.match('[^[\\]{}:,\\s\'"]+',
+ self.src[self.cursor-1:])
+ raise QAPIParseError(self, "Stray '%s'" % match.group(0))
def get_members(self):
expr = OrderedDict()