diff options
Diffstat (limited to 'sqlparse/engine/grouping.py')
| -rw-r--r-- | sqlparse/engine/grouping.py | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py index a74f6f8..1be4f53 100644 --- a/sqlparse/engine/grouping.py +++ b/sqlparse/engine/grouping.py @@ -321,20 +321,18 @@ def _group(tlist, cls, match, if token.is_whitespace(): continue + if token.is_group() and not isinstance(token, cls): _group(token, cls, match, valid_left, valid_right, post, extend) - pidx, prev_ = tidx, token - continue - if not match(token): - pidx, prev_ = tidx, token - continue - nidx, next_ = tlist.token_next(tidx) + if match(token): + nidx, next_ = tlist.token_next(tidx) + if valid_left(prev_) and valid_right(next_): + from_idx, to_idx = post(tlist, pidx, tidx, nidx) + grp = tlist.group_tokens(cls, from_idx, to_idx, extend=extend) - if valid_left(prev_) and valid_right(next_): - from_idx, to_idx = post(tlist, pidx, tidx, nidx) - grp = tlist.group_tokens(cls, from_idx, to_idx, extend=extend) - tidx_offset += to_idx - from_idx - pidx, prev_ = from_idx, grp - else: - pidx, prev_ = tidx, token + tidx_offset += to_idx - from_idx + pidx, prev_ = from_idx, grp + continue + + pidx, prev_ = tidx, token |
