X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=sqlconvert%2Fprocess_tokens.py;h=886f36d46c02d1f824486593f3263bd06b3cb3b3;hb=HEAD;hp=e55513e19afb2de13591a113c4f3000721c4322d;hpb=206d77dac80ce387d4714f589916de4842e99cef;p=sqlconvert.git diff --git a/sqlconvert/process_tokens.py b/sqlconvert/process_tokens.py index e55513e..886f36d 100644 --- a/sqlconvert/process_tokens.py +++ b/sqlconvert/process_tokens.py @@ -1,9 +1,14 @@ +from sqlparse.sql import Comment from sqlobject.converters import sqlrepr from sqlparse import parse -from sqlparse.compat import PY3 from sqlparse import tokens as T +try: + xrange +except NameError: + xrange = range + def find_error(token_list): """Find an error""" @@ -14,8 +19,9 @@ def find_error(token_list): def is_comment_or_space(token): - return token.ttype in (T.Comment.Single, T.Comment.Multiline, - T.Newline, T.Whitespace) + return isinstance(token, Comment) or \ + token.ttype in (T.Comment, T.Comment.Single, T.Comment.Multiline, + T.Newline, T.Whitespace) def is_newline_statement(statement): @@ -34,10 +40,6 @@ def escape_strings(token_list, dbname): token.normalized = token.value = value -if PY3: - xrange = range - - class StatementGrouper(object): """Collect lines and reparse until the last statement is complete""" @@ -52,6 +54,8 @@ class StatementGrouper(object): def process_lines(self): statements = parse(''.join(self.lines), encoding=self.encoding) + if not statements: + return last_stmt = statements[-1] for i in xrange(len(last_stmt.tokens) - 1, 0, -1): token = last_stmt.tokens[i]