Enhanced hidl-gen support for generating vts files.

*Support callflow from mehtod annotations.
*Support inheritance for interfaces and types.
*Support Array and Union type.

b/30762234

Change-Id: I059b780d6362a557bb9cfd70d6c5ec0e73916ce3
diff --git a/AST.h b/AST.h
index e2b68cf..d5fe3ba 100644
--- a/AST.h
+++ b/AST.h
@@ -141,9 +141,13 @@
 
     status_t emitTypeDeclarations(Formatter &out) const;
     status_t emitJavaTypeDeclarations(Formatter &out) const;
+    status_t emitVtsTypeDeclarations(Formatter &out) const;
 
-    status_t emitVtsTypeDeclarations(
-            Formatter &out, const std::vector<Type *> &types) const;
+    // Helper function that generates vts type declaration from the current
+    // AST and the transitive closure of imported ASTs.
+    status_t emitVtsTypeDeclarationsHelper(
+                Formatter &out,
+                std::set<AST*> *allImportSet) const;
 
     DISALLOW_COPY_AND_ASSIGN(AST);
 };