Skip to content

Commit

Permalink
qapi.py: Avoid code duplication
Browse files Browse the repository at this point in the history
The code that interprets the read JSON expression and appends types to
the respective global variables was duplicated. We can avoid that by
splitting off the part that reads from the file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
  • Loading branch information
kevmw authored and Luiz Capitulino committed Jul 10, 2013
1 parent 0f95305 commit bd9927f
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions scripts/qapi.py
Expand Up @@ -78,10 +78,8 @@ def parse(tokens):
def evaluate(string):
return parse(map(lambda x: x, tokenize(string)))[0]

def parse_schema(fp):
exprs = []
def get_expr(fp):
expr = ''
expr_eval = None

for line in fp:
if line.startswith('#') or line == '\n':
Expand All @@ -90,18 +88,20 @@ def parse_schema(fp):
if line.startswith(' '):
expr += line
elif expr:
expr_eval = evaluate(expr)
if expr_eval.has_key('enum'):
add_enum(expr_eval['enum'])
elif expr_eval.has_key('union'):
add_enum('%sKind' % expr_eval['union'])
exprs.append(expr_eval)
yield expr
expr = line
else:
expr += line

if expr:
yield expr

def parse_schema(fp):
exprs = []

for expr in get_expr(fp):
expr_eval = evaluate(expr)

if expr_eval.has_key('enum'):
add_enum(expr_eval['enum'])
elif expr_eval.has_key('union'):
Expand Down

0 comments on commit bd9927f

Please sign in to comment.