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;