X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FParsedSource.h;h=6351ae43f90855b8786c57f2c2d23447817ef0bd;hb=ebd72885587d606677e35129e418dbe6321082d1;hp=97137fbad613e981e3f8956a6ccbfad1224ae255;hpb=32b5ea1b0f05283eb588b2b069d667f7c36e84da;p=l2e.git diff --git a/src/loader/ParsedSource.h b/src/loader/ParsedSource.h index 97137fb..6351ae4 100644 --- a/src/loader/ParsedSource.h +++ b/src/loader/ParsedSource.h @@ -78,7 +78,12 @@ public: explicit Value(const std::string &identifier) : literal(0), identifier(identifier), isLiteral(false) { } explicit Value(Literal *literal) - : literal(literal), isLiteral(false) { } + : literal(literal), isLiteral(true) { } + +public: + bool IsLiteral() const { return isLiteral; } + const Literal &GetLiteral() const; + const std::string &GetIdentifier() const; private: Literal *literal; @@ -98,6 +103,13 @@ public: props[name] = value; } + typedef std::map::iterator Iterator; + typedef std::map::const_iterator ConstIterator; + Iterator Begin() { return props.begin(); } + ConstIterator Begin() const { return props.begin(); } + Iterator End() { return props.end(); } + ConstIterator End() const { return props.end(); } + private: std::map props; @@ -159,6 +171,13 @@ public: void ExportDeclaration(Declaration *); void ExportIdentifier(const std::string &); + bool IsDeclared(const std::string &) const; + Declaration &GetDeclaration(const std::string &); + const Declaration &GetDeclaration(const std::string &) const; + bool IsDefined(const std::string &) const; + Definition &GetDefinition(const std::string &); + const Definition &GetDefinition(const std::string &) const; + const std::map &Declarations() const { return declarations; } const std::map &Definitions() const { return definitions; } const std::set &Exports() const { return exports; }