summaryrefslogtreecommitdiffstats
path: root/sqlglot/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/__main__.py')
-rw-r--r--sqlglot/__main__.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/sqlglot/__main__.py b/sqlglot/__main__.py
index f9613b2..f3433d3 100644
--- a/sqlglot/__main__.py
+++ b/sqlglot/__main__.py
@@ -1,5 +1,8 @@
+from __future__ import annotations
+
import argparse
import sys
+import typing as t
import sqlglot
@@ -43,6 +46,12 @@ parser.add_argument(
help="Parse and return the expression tree",
)
parser.add_argument(
+ "--tokenize",
+ dest="tokenize",
+ action="store_true",
+ help="Tokenize and return the tokens list",
+)
+parser.add_argument(
"--error-level",
dest="error_level",
type=str,
@@ -57,7 +66,7 @@ error_level = sqlglot.ErrorLevel[args.error_level.upper()]
sql = sys.stdin.read() if args.sql == "-" else args.sql
if args.parse:
- sqls = [
+ objs: t.Union[t.List[str], t.List[sqlglot.tokens.Token]] = [
repr(expression)
for expression in sqlglot.parse(
sql,
@@ -65,8 +74,10 @@ if args.parse:
error_level=error_level,
)
]
+elif args.tokenize:
+ objs = sqlglot.Dialect.get_or_raise(args.read)().tokenize(sql)
else:
- sqls = sqlglot.transpile(
+ objs = sqlglot.transpile(
sql,
read=args.read,
write=args.write,
@@ -75,5 +86,5 @@ else:
error_level=error_level,
)
-for sql in sqls:
- print(sql)
+for obj in objs:
+ print(obj)