qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/8] decodetree: Remove python 3.4 check


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 1/8] decodetree: Remove python 3.4 check
Date: Fri, 29 May 2020 11:35:32 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0

On 5/18/20 6:40 PM, Richard Henderson wrote:
> We are now guaranteed python 3.5 or later.

FYI this has been addressed by John Snow:
https://www.mail-archive.com/qemu-block@nongnu.org/msg66830.html

> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  scripts/decodetree.py | 25 +++++++++----------------
>  1 file changed, 9 insertions(+), 16 deletions(-)
> 
> diff --git a/scripts/decodetree.py b/scripts/decodetree.py
> index 46ab917807..f9d204aa36 100755
> --- a/scripts/decodetree.py
> +++ b/scripts/decodetree.py
> @@ -75,13 +75,6 @@ def output(*args):
>          output_fd.write(a)
>  
>  
> -if sys.version_info >= (3, 4):
> -    re_fullmatch = re.fullmatch
> -else:
> -    def re_fullmatch(pat, str):
> -        return re.match('^' + pat + '$', str)
> -
> -
>  def output_autogen():
>      output('/* This file is autogenerated by scripts/decodetree.py.  */\n\n')
>  
> @@ -428,18 +421,18 @@ def parse_field(lineno, name, toks):
>      width = 0
>      func = None
>      for t in toks:
> -        if re_fullmatch('!function=' + re_ident, t):
> +        if re.fullmatch('!function=' + re_ident, t):
>              if func:
>                  error(lineno, 'duplicate function')
>              func = t.split('=')
>              func = func[1]
>              continue
>  
> -        if re_fullmatch('[0-9]+:s[0-9]+', t):
> +        if re.fullmatch('[0-9]+:s[0-9]+', t):
>              # Signed field extract
>              subtoks = t.split(':s')
>              sign = True
> -        elif re_fullmatch('[0-9]+:[0-9]+', t):
> +        elif re.fullmatch('[0-9]+:[0-9]+', t):
>              # Unsigned field extract
>              subtoks = t.split(':')
>              sign = False
> @@ -488,11 +481,11 @@ def parse_arguments(lineno, name, toks):
>      flds = []
>      extern = False
>      for t in toks:
> -        if re_fullmatch('!extern', t):
> +        if re.fullmatch('!extern', t):
>              extern = True
>              anyextern = True
>              continue
> -        if not re_fullmatch(re_ident, t):
> +        if not re.fullmatch(re_ident, t):
>              error(lineno, 'invalid argument set token "{0}"'.format(t))
>          if t in flds:
>              error(lineno, 'duplicate argument "{0}"'.format(t))
> @@ -621,13 +614,13 @@ def parse_generic(lineno, is_format, name, toks):
>              continue
>  
>          # 'Foo=%Bar' imports a field with a different name.
> -        if re_fullmatch(re_ident + '=%' + re_ident, t):
> +        if re.fullmatch(re_ident + '=%' + re_ident, t):
>              (fname, iname) = t.split('=%')
>              flds = add_field_byname(lineno, flds, fname, iname)
>              continue
>  
>          # 'Foo=number' sets an argument field to a constant value
> -        if re_fullmatch(re_ident + '=[+-]?[0-9]+', t):
> +        if re.fullmatch(re_ident + '=[+-]?[0-9]+', t):
>              (fname, value) = t.split('=')
>              value = int(value)
>              flds = add_field(lineno, flds, fname, ConstField(value))
> @@ -635,7 +628,7 @@ def parse_generic(lineno, is_format, name, toks):
>  
>          # Pattern of 0s, 1s, dots and dashes indicate required zeros,
>          # required ones, or dont-cares.
> -        if re_fullmatch('[01.-]+', t):
> +        if re.fullmatch('[01.-]+', t):
>              shift = len(t)
>              fms = t.replace('0', '1')
>              fms = fms.replace('.', '0')
> @@ -652,7 +645,7 @@ def parse_generic(lineno, is_format, name, toks):
>              fixedmask = (fixedmask << shift) | fms
>              undefmask = (undefmask << shift) | ubm
>          # Otherwise, fieldname:fieldwidth
> -        elif re_fullmatch(re_ident + ':s?[0-9]+', t):
> +        elif re.fullmatch(re_ident + ':s?[0-9]+', t):
>              (fname, flen) = t.split(':')
>              sign = False
>              if flen[0] == 's':
> 




reply via email to

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