diff options
author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-01-18 15:30:18 +0100 |
---|---|---|
committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-01-18 15:30:18 +0100 |
commit | 8ab0709045667f8e1a67a9981c619980c9aebd1a (patch) | |
tree | f39812b3d216566de7c4dcdaacc7c607aa7e646c /src/core/common/VariantReader.hpp | |
parent | cd55519130c5f91d95107b3b1e1a8203caa5008a (diff) | |
parent | 372c67e0844654362fc7d440b0b4a31500a6d02a (diff) |
Merge branch 'master' of somweyr.de:ousia
Diffstat (limited to 'src/core/common/VariantReader.hpp')
-rw-r--r-- | src/core/common/VariantReader.hpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/core/common/VariantReader.hpp b/src/core/common/VariantReader.hpp index abf529c..8aaffd8 100644 --- a/src/core/common/VariantReader.hpp +++ b/src/core/common/VariantReader.hpp @@ -229,6 +229,26 @@ public: CharReader &reader, Logger &logger, const std::unordered_set<char> &delims, bool extractUnescapedStrings = false); + + /** + * Tries to parse the most specific item from the given string. The + * resulting variant represents the value that has been read. If the end of + * the string was not reached while parsing an element, the result is + * returned as string. + * + * @param str is the string from which the value should be read. + * @param logger is the logger instance to which errors or warnings will be + * written. + * @return a pair indicating whether the operation was successful and the + * extracted variant value. Note that the variant value most times contains + * some meaningful data that can be worked with even if the operation was + * not successful (e.g. if a syntax error is encountered while reading an + * array, the successfully read elements will still be in the returned + * variant.) Information on why the operation has failed is passed to the + * logger. + */ + static std::pair<bool, Variant> parseGenericString( + const std::string &str, Logger &logger); }; } |