Create the skeleton of the C++ -> Rust migration tool.

PiperOrigin-RevId: 448016954
diff --git a/migrator/rs_from_cc/BUILD b/migrator/rs_from_cc/BUILD
new file mode 100644
index 0000000..834ae10
--- /dev/null
+++ b/migrator/rs_from_cc/BUILD
@@ -0,0 +1,94 @@
+"""Generates equivalent Rust code from C++ code."""
+
+licenses(["notice"])
+
+cc_binary(
+    name = "rs_from_cc",
+    srcs = ["rs_from_cc.cc"],
+    visibility = ["//visibility:public"],
+    deps = [
+        ":rs_from_cc_lib",
+        "@absl//flags:flag",
+        "@absl//flags:parse",
+        "@absl//status",
+        "@absl//status:statusor",
+        "@absl//strings",
+        "//common:check",
+        "//common:file_io",
+        "@llvm///llvm:Support",
+        "@rust//support:rust_okay_here",
+    ],
+)
+
+cc_library(
+    name = "frontend_action",
+    srcs = ["frontend_action.cc"],
+    hdrs = ["frontend_action.h"],
+    deps = [
+        ":ast_consumer",
+        ":converter",
+        "//lifetime_annotations",
+        "@llvm///clang:ast",
+        "@llvm///clang:frontend",
+    ],
+)
+
+cc_library(
+    name = "ast_consumer",
+    srcs = ["ast_consumer.cc"],
+    hdrs = ["ast_consumer.h"],
+    deps = [
+        ":converter",
+        "//common:check",
+        "@llvm///clang:ast",
+        "@llvm///clang:frontend",
+    ],
+)
+
+cc_library(
+    name = "converter",
+    srcs = ["converter.cc"],
+    hdrs = ["converter.h"],
+    deps = [
+        "@absl//container:flat_hash_map",
+        "@absl//container:flat_hash_set",
+        "@absl//status:statusor",
+        "@absl//strings",
+        "@absl//types:span",
+        "//lifetime_annotations",
+        "@llvm///clang:ast",
+        "@llvm///clang:basic",
+        "@llvm///clang:sema",
+        "//third_party/re2",
+    ],
+)
+
+cc_test(
+    name = "rs_from_cc_test",
+    srcs = ["rs_from_cc_lib_test.cc"],
+    deps = [
+        ":rs_from_cc_lib",
+        "//testing/base/public:gunit_main",
+        "@absl//status",
+        "@absl//strings",
+        "@llvm///clang:ast",
+    ],
+)
+
+cc_library(
+    name = "rs_from_cc_lib",
+    srcs = ["rs_from_cc_lib.cc"],
+    hdrs = ["rs_from_cc_lib.h"],
+    deps = [
+        ":converter",
+        ":frontend_action",
+        "@absl//container:flat_hash_map",
+        "@absl//status",
+        "@absl//status:statusor",
+        "@absl//strings",
+        "@absl//types:span",
+        "@llvm///clang:basic",
+        "@llvm///clang:frontend",
+        "@llvm///clang:tooling",
+    ],
+)