Keeping track of imported names, resolve enum storage types, some finetuning.
diff --git a/AST.h b/AST.h
index a159c59..c0fe6b0 100644
--- a/AST.h
+++ b/AST.h
@@ -3,6 +3,7 @@
 #define AST_H_
 
 #include <android-base/macros.h>
+#include <set>
 #include <string>
 #include <utils/Vector.h>
 
@@ -38,7 +39,7 @@
     // Look up a type by FQName, "pure" names, i.e. those without package
     // or version are first looked up in the current scope chain.
     // After that lookup proceeds to imports.
-    Type *lookupType(const char *name) const;
+    Type *lookupType(const char *name);
 
     // Takes dot-separated path components to a type possibly inside this AST.
     // Name resolution goes from root scope downwards, i.e. the path must be
@@ -58,6 +59,16 @@
 
     FQName mPackage;
 
+    std::set<FQName> mImportedNames;
+
+    static void GetPackageComponents(
+            const FQName &fqName, std::vector<std::string> *components);
+
+    static void GetPackageAndVersionComponents(
+            const FQName &fqName,
+            std::vector<std::string> *components,
+            bool cpp_compatible);
+
     void getPackageComponents(std::vector<std::string> *components) const;
 
     void getPackageAndVersionComponents(