[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
>