Switch to 'glr' skeleton parser, better diagnostics through location tracking.

Change-Id: I34f510f3bf8d1e6da06de350456bd2804ca236db
Bug: 28679009
diff --git a/AST.h b/AST.h
index 534fb6a..97ecc6f 100644
--- a/AST.h
+++ b/AST.h
@@ -23,7 +23,7 @@
 struct Scope;
 
 struct AST {
-    AST(Coordinator *coordinator);
+    AST(Coordinator *coordinator, const std::string &path);
     ~AST();
 
     bool setPackage(const char *package);
@@ -38,11 +38,16 @@
     Scope *scope();
 
     // Returns true iff successful.
-    bool addScopedType(const char *localName, NamedType *type);
+    bool addScopedType(
+            const char *localName,
+            NamedType *type,
+            std::string *errorMsg);
 
     void *scanner();
     void setScanner(void *scanner);
 
+    const std::string &getFilename() const;
+
     // 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.
@@ -60,9 +65,9 @@
 
     status_t generateVts(const std::string &outputPath) const;
 
-
 private:
     Coordinator *mCoordinator;
+    std::string mPath;
     Vector<Scope *> mScopePath;
 
     void *mScanner;