X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fio%2FTokenStreamReader.hpp;h=ea3a6ccbca1af7d5463d283e8b65329b5da6e889;hb=cdd865c1934eccbb1f1d0ffaf041e53f0fdd524b;hp=7b5a8ff74da6aeb54ceefe9a139b09062df2fd63;hpb=5bc84befaa51b81f8f4cfc7d447c553bb471953a;p=blank.git diff --git a/src/io/TokenStreamReader.hpp b/src/io/TokenStreamReader.hpp index 7b5a8ff..ea3a6cc 100644 --- a/src/io/TokenStreamReader.hpp +++ b/src/io/TokenStreamReader.hpp @@ -14,7 +14,7 @@ namespace blank { class TokenStreamReader { public: - TokenStreamReader(std::istream &); + explicit TokenStreamReader(std::istream &); bool HasMore(); const Token &Next(); @@ -28,6 +28,9 @@ public: void ReadNumber(int &); void ReadNumber(unsigned long &); void ReadString(std::string &); + // like ReadString, but does not require the value to be + // written as a string literal in source + void ReadRelaxedString(std::string &); void ReadVec(glm::vec2 &); void ReadVec(glm::vec3 &); @@ -42,6 +45,7 @@ public: // the Get* functions advance to the next token // the As* functions try to cast the current token // if the value could not be converted, a std::runtime_error is thrown + // conversion to string is always possible bool GetBool(); bool AsBool() const; @@ -51,6 +55,8 @@ public: int AsInt() const; unsigned long GetULong(); unsigned long AsULong() const; + const std::string &GetString(); + const std::string &AsString() const; private: void SkipComments();