[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 7/8] decodetree: Implement non-overlapping groups
From: |
Peter Maydell |
Subject: |
Re: [PATCH 7/8] decodetree: Implement non-overlapping groups |
Date: |
Tue, 2 Jun 2020 20:13:53 +0100 |
On Mon, 18 May 2020 at 17:41, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Intended to be nested within overlapping groups.
>
> Suggested-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> scripts/decodetree.py | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/decodetree.py b/scripts/decodetree.py
> index 0ba01e049c..a9739f671d 100755
> --- a/scripts/decodetree.py
> +++ b/scripts/decodetree.py
> @@ -1021,21 +1021,22 @@ def parse_file(f, parent_pat):
> del toks[0]
>
> # End nesting?
> - if name == '}':
> + if name == '}' or name == ']':
> if len(toks) != 0:
> error(start_lineno, 'extra tokens after close brace')
> if len(parent_pat.pats) < 2:
> error(lineno, 'less than two patterns within braces')
>
> + # Make sure { } and [ ] nest properly.
> + if (name == '}') != isinstance(parent_pat, IncMultiPattern):
> + error(lineno, 'mismatched close brace')
> +
> try:
> parent_pat = nesting_pats.pop()
> except:
> - error(lineno, 'mismatched close brace')
> + error(lineno, 'extra close brace')
>
> nesting -= 2
> - if indent != nesting:
> - error(lineno, 'indentation ', indent, ' != ', nesting)
> -
Why do we lose this error check ?
> toks = []
> continue
thanks
-- PMM
- Re: [PATCH 7/8] decodetree: Implement non-overlapping groups,
Peter Maydell <=