Revert "Revert "Switch to the new SkSL lexer.""

This reverts commit 358515491a0d6891e6a709688a30ad087df1beb1.

Bug: skia:
Change-Id: I013fac0ed83774d8ae7c6ee6819045cab37f5e97
Reviewed-on: https://skia-review.googlesource.com/45180
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/gn/run_sksllex.py b/gn/run_sksllex.py
new file mode 100644
index 0000000..0377283
--- /dev/null
+++ b/gn/run_sksllex.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python
+#
+# Copyright 2017 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os
+import subprocess
+import sys
+
+sksllex = sys.argv[1]
+clangFormat = sys.argv[2]
+src = sys.argv[3]
+try:
+    subprocess.check_output([sksllex, src + "/sksl/lex/sksl.lex", "Lexer",
+                             "Token", src + "/sksl/SkSLLexer.h", src +
+                             "/sksl/SkSLLexer.cpp"])
+    subprocess.check_call(clangFormat + " -i \"" + src + "/sksl/SkSLLexer.h\"",
+                          shell=True)
+    subprocess.check_call(clangFormat + " -i \"" + src +
+                          "/sksl/SkSLLexer.cpp\"", shell=True)
+    subprocess.check_output([sksllex, src + "/sksl/lex/layout.lex",
+                             "LayoutLexer", "LayoutToken",
+                             src + "/sksl/SkSLLayoutLexer.h",
+                             src + "/sksl/SkSLLayoutLexer.cpp"])
+    subprocess.check_call(clangFormat + " -i \"" + src +
+                          "/sksl/SkSLLayoutLexer.h\"", shell=True)
+    subprocess.check_call(clangFormat + " -i \"" + src +
+                          "/sksl/SkSLLayoutLexer.cpp\"", shell=True)
+except subprocess.CalledProcessError as err:
+    print("### Lexer error:")
+    print(err.output)
+    exit(1)