bazel syntax: break dependency on lib.profiler

...by injecting the wall-time profiler from a
static initializer in lib.packages.

PiperOrigin-RevId: 312090563
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
index e7858f8..ea4b675 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
@@ -153,4 +153,16 @@
   public FileOptions getOptions() {
     return options;
   }
+
+  /** A ParseProfiler records the start and end times of parse operations. */
+  public interface ParseProfiler {
+    Object start(String filename);
+
+    void end(Object span);
+  }
+
+  /** Installs a global hook that will be notified of parse operations. */
+  public static void setParseProfiler(@Nullable ParseProfiler p) {
+    Parser.profiler = p;
+  }
 }