qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 1/3] qapi.py: Avoid code duplication


From: Michael Roth
Subject: Re: [Qemu-devel] [PATCH v3 1/3] qapi.py: Avoid code duplication
Date: Mon, 1 Jul 2013 11:21:07 -0500

On Mon, Jul 1, 2013 at 9:31 AM, Kevin Wolf <address@hidden> wrote:
> 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 <address@hidden>

Reviewed-by: Michael Roth <address@hidden>

> ---
>  scripts/qapi.py | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 02ad668..3139994 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -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':
> @@ -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'):
> --
> 1.8.1.4
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]