import sys
+try:
+ from cStringIO import StringIO
+except ImportError:
+ try:
+ from StringIO import StringIO
+ except ImportError:
+ from io import StringIO
from sqlparse.sql import TokenList
-def print_subtree(token_list, ident=0):
+def print_subtree(token_list, outfile=sys.stdout, ident=0):
for token in token_list:
- print " "*ident, repr(token)
+ outfile.write(" "*ident)
+ outfile.write(repr(token))
+ outfile.write("\n")
if isinstance(token, TokenList):
- print_subtree(token, ident+4)
+ print_subtree(token, outfile, ident+4)
-def print_tokens(token_list, level=0):
+def print_tokens(token_list, outfile=sys.stdout, level=0):
for token in token_list:
if not isinstance(token, TokenList):
- sys.stdout.write(token.normalized)
+ outfile.write(token.normalized)
if isinstance(token, TokenList):
- print_tokens(token, level+1)
+ print_tokens(token, outfile, level+1)
if level == 0:
- print ';'
+ outfile.write(';\n')
+
+
+def get_tokens_str(token_list):
+ sio = StringIO()
+ print_tokens(token_list, outfile=sio)
+ return sio.getvalue()