Recursively parse imported .hal files and perform global type lookup.
diff --git a/Coordinator.h b/Coordinator.h
new file mode 100644
index 0000000..54eaa7e
--- /dev/null
+++ b/Coordinator.h
@@ -0,0 +1,33 @@
+#ifndef COORDINATOR_H_
+
+#define COORDINATOR_H_
+
+#include <android-base/macros.h>
+#include <string>
+#include <utils/KeyedVector.h>
+
+namespace android {
+
+struct AST;
+struct FQName;
+struct Type;
+
+struct Coordinator {
+ Coordinator();
+ ~Coordinator();
+
+ AST *parse(const char *path);
+
+ Type *lookupType(const FQName &fqName) const;
+
+ static std::string GetPackagePath(const FQName &fqName);
+
+private:
+ KeyedVector<std::string, AST *> mCache;
+
+ DISALLOW_COPY_AND_ASSIGN(Coordinator);
+};
+
+} // namespace android
+
+#endif // COORDINATOR_H_