[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 7/8] decodetree: Implement non-overlapping groups
From: |
Richard Henderson |
Subject: |
Re: [PATCH 7/8] decodetree: Implement non-overlapping groups |
Date: |
Tue, 2 Jun 2020 12:19:55 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 |
On 6/2/20 12:13 PM, Peter Maydell wrote:
> 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 ?
Hmm, wasn't supposed to. Will fix.
r~