Skip to content

Commit

Permalink
qapi: Move uppercase rejection to check_name_lower()
Browse files Browse the repository at this point in the history
check_name_lower() is the only user of check_name_str() using
permit_upper=False.  Move the associated code from check_name_str() to
check_name_lower(), and drop the parameter.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20210323094025.3569441-12-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
  • Loading branch information
Markus Armbruster committed Mar 23, 2021
1 parent eaab06f commit d224e0c
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions scripts/qapi/expr.py
Expand Up @@ -34,32 +34,31 @@ def check_name_is_str(name, info, source):
raise QAPISemError(info, "%s requires a string name" % source)


def check_name_str(name, info, source,
permit_upper=False):
def check_name_str(name, info, source):
# Reserve the entire 'q_' namespace for c_name(), and for 'q_empty'
# and 'q_obj_*' implicit type names.
match = valid_name.match(name)
if not match or c_name(name, False).startswith('q_'):
raise QAPISemError(info, "%s has an invalid name" % source)
if not permit_upper and name.lower() != name:
raise QAPISemError(
info, "%s uses uppercase in name" % source)
return match.group(3)


def check_name_upper(name, info, source):
stem = check_name_str(name, info, source, permit_upper=True)
stem = check_name_str(name, info, source)
# TODO reject '[a-z-]' in @stem


def check_name_lower(name, info, source,
permit_upper=False):
stem = check_name_str(name, info, source, permit_upper)
stem = check_name_str(name, info, source)
if not permit_upper and name.lower() != name:
raise QAPISemError(
info, "%s uses uppercase in name" % source)
# TODO reject '_' in stem


def check_name_camel(name, info, source):
stem = check_name_str(name, info, source, permit_upper=True)
stem = check_name_str(name, info, source)
# TODO reject '[_-]' in stem, require CamelCase


Expand Down

0 comments on commit d224e0c

Please sign in to comment.