]> git.phdru.name Git - sqlconvert.git/blobdiff - scripts/print_subtree.py
Find an error in parse tree
[sqlconvert.git] / scripts / print_subtree.py
index da5eae8c5fbdac1dc48db6a26cc20f5ce686a627..76ac675ce9f5086652b785d89d1c8359640c350b 100755 (executable)
@@ -1,9 +1,10 @@
 #! /usr/bin/env python
+from __future__ import print_function
 
 import sys
 from sqlparse import parse
-from mysql2sql.process_tokens import requote_names
-from mysql2sql.print_tokens import print_tokens, print_subtree
+from mysql2sql.print_tokens import print_tokens
+from mysql2sql.process_tokens import requote_names, find_error
 
 
 def test():
@@ -13,25 +14,35 @@ def test():
         "/*! directive*/ INSERT INTO `MyTable` (`Id`, `Name`) "
         "VALUES (1, 'one')"
     ):
-        print "----------"
         for parsed in parse(query):
+            print("----------")
+            if find_error(parsed):
+                print("ERRORS IN QUERY")
             requote_names(parsed)
             print_tokens(parsed)
-            print_subtree(parsed)
-    print "----------"
+            print()
+            parsed._pprint_tree()
+    print("----------")
 
 
-def main(query):
-    parsed = parse(query)[0]
-    requote_names(parsed)
-    print_tokens(parsed)
-    print_subtree(parsed)
+def main(*queries):
+    for query in queries:
+        for parsed in parse(query):
+            print("----------")
+            if find_error(parsed):
+                print("ERRORS IN QUERY")
+            requote_names(parsed)
+            print_tokens(parsed)
+            print()
+            parsed._pprint_tree()
+        print("----------")
 
 if __name__ == '__main__':
-    if len(sys.argv) != 2:
-        sys.exit("Usage: %s [-t | sql_query_string]" % sys.argv[0])
+    if len(sys.argv) <= 1:
+        sys.exit("Usage: %s [-t | sql_query_string [; sql_query_string ...]]" %
+                 sys.argv[0])
     if sys.argv[1] == '-t':
         test()
     else:
-        query = sys.argv[1]
-        main(query)
+        queries = sys.argv[1:]
+        main(*queries)