tp: switch tokenizer to real SQLite tokenizer + grammar
This CL prepares the ground for having a proper LALR parser by switching
to using the real sqlite tokenize function (instead of some franken
version of them) and also generating the token definitions directly
from SQLite instead of hacking it as "generic keyword".
All of this stuff will be used in the upcoming parser.
Change-Id: I0c62d9c3700f2e585609400e5d4b7742aed7825c
diff --git a/Android.bp b/Android.bp
index 2d05823..9a581b7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -2503,6 +2503,7 @@
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",
":perfetto_src_trace_processor_perfetto_sql_engine_engine",
+ ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -2512,6 +2513,7 @@
":perfetto_src_trace_processor_perfetto_sql_parser_parser",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_grammar",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_preprocessor",
+ ":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenize_internal",
":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenizer",
":perfetto_src_trace_processor_sorter_sorter",
":perfetto_src_trace_processor_sqlite_bindings_bindings",
@@ -13244,6 +13246,14 @@
],
}
+// GN: //src/trace_processor/perfetto_sql/grammar:grammar
+filegroup {
+ name: "perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
+ srcs: [
+ "src/trace_processor/perfetto_sql/grammar/perfettosql_grammar.c",
+ ],
+}
+
// GN: //src/trace_processor/perfetto_sql/intrinsics/functions:functions
filegroup {
name: "perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
@@ -13611,6 +13621,14 @@
],
}
+// GN: //src/trace_processor/perfetto_sql/tokenizer:tokenize_internal
+filegroup {
+ name: "perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenize_internal",
+ srcs: [
+ "src/trace_processor/perfetto_sql/tokenizer/tokenize_internal.c",
+ ],
+}
+
// GN: //src/trace_processor/perfetto_sql/tokenizer:tokenizer
filegroup {
name: "perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenizer",
@@ -15582,6 +15600,7 @@
":perfetto_src_trace_processor_metrics_unittests",
":perfetto_src_trace_processor_perfetto_sql_engine_engine",
":perfetto_src_trace_processor_perfetto_sql_engine_unittests",
+ ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_unittests",
@@ -15597,6 +15616,7 @@
":perfetto_src_trace_processor_perfetto_sql_preprocessor_grammar",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_preprocessor",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_unittests",
+ ":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenize_internal",
":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenizer",
":perfetto_src_trace_processor_perfetto_sql_tokenizer_unittests",
":perfetto_src_trace_processor_rpc_rpc",
@@ -16638,6 +16658,7 @@
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",
":perfetto_src_trace_processor_perfetto_sql_engine_engine",
+ ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -16647,6 +16668,7 @@
":perfetto_src_trace_processor_perfetto_sql_parser_parser",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_grammar",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_preprocessor",
+ ":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenize_internal",
":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenizer",
":perfetto_src_trace_processor_rpc_httpd",
":perfetto_src_trace_processor_rpc_rpc",
@@ -17053,6 +17075,7 @@
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",
":perfetto_src_trace_processor_perfetto_sql_engine_engine",
+ ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -17062,6 +17085,7 @@
":perfetto_src_trace_processor_perfetto_sql_parser_parser",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_grammar",
":perfetto_src_trace_processor_perfetto_sql_preprocessor_preprocessor",
+ ":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenize_internal",
":perfetto_src_trace_processor_perfetto_sql_tokenizer_tokenizer",
":perfetto_src_trace_processor_sorter_sorter",
":perfetto_src_trace_processor_sqlite_bindings_bindings",