diff options
| author | Andi Albrecht <albrecht.andi@gmail.com> | 2015-03-05 11:54:33 +0100 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2015-03-05 11:54:33 +0100 |
| commit | bf2616058ada2748bb79fc7c861abb7748ffb89a (patch) | |
| tree | 712c0352906003c6b4d4148705c28706a7b426a0 /sqlparse/sql.py | |
| parent | 15b0cb9e75ca378e94b55b7f1ff23108f0899cde (diff) | |
| parent | acdebefd638225eefe438919897ba68e7882504b (diff) | |
| download | sqlparse-bf2616058ada2748bb79fc7c861abb7748ffb89a.tar.gz | |
Merge pull request #177 from darikg/brackets
Better square bracket / array index handling
Diffstat (limited to 'sqlparse/sql.py')
| -rw-r--r-- | sqlparse/sql.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py index 8492c5e..9fcb546 100644 --- a/sqlparse/sql.py +++ b/sqlparse/sql.py @@ -511,11 +511,12 @@ class Identifier(TokenList): return ordering.value.upper() def get_array_indices(self): - """Returns an iterator of index expressions as strings""" + """Returns an iterator of index token lists""" - # Use [1:-1] index to discard the square brackets - return (tok.value[1:-1] for tok in self.tokens - if tok.ttype in T.ArrayIndex) + for tok in self.tokens: + if isinstance(tok, SquareBrackets): + # Use [1:-1] index to discard the square brackets + yield tok.tokens[1:-1] class IdentifierList(TokenList): @@ -542,6 +543,15 @@ class Parenthesis(TokenList): return self.tokens[1:-1] +class SquareBrackets(TokenList): + """Tokens between square brackets""" + + __slots__ = ('value', 'ttype', 'tokens') + + @property + def _groupable_tokens(self): + return self.tokens[1:-1] + class Assignment(TokenList): """An assignment like 'var := val;'""" __slots__ = ('value', 'ttype', 'tokens') |
