summaryrefslogtreecommitdiff
path: root/src/core/variant/Reader.hpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-11 15:26:50 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-11 15:26:50 +0100
commit3f62168ed0b088eec3cb2903f03966f7d501f564 (patch)
tree781f5bd9b304d9eb931827a26f463575d772983d /src/core/variant/Reader.hpp
parentb74936760e28a92cadfaec47928ea478fe2d72ee (diff)
moved to CharReader everywhere
Diffstat (limited to 'src/core/variant/Reader.hpp')
-rw-r--r--src/core/variant/Reader.hpp169
1 files changed, 0 insertions, 169 deletions
diff --git a/src/core/variant/Reader.hpp b/src/core/variant/Reader.hpp
deleted file mode 100644
index 4114d46..0000000
--- a/src/core/variant/Reader.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- Ousía
- Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @file Reader.hpp
- *
- * Provides parsers for various micro formats. These formats include integers,
- * doubles, strings, JSON and the Ousía struct notation.
- *
- * @author Andreas Stöckel (astoecke@techfak.uni-bielefeld.de)
- */
-
-#ifndef _OUSIA_VARIANT_READER_HPP_
-#define _OUSIA_VARIANT_READER_HPP_
-
-#include <cstdint>
-#include <unordered_set>
-#include <utility>
-
-#include <core/utils/CharReader.hpp>
-#include <core/Logger.hpp>
-
-#include "Variant.hpp"
-
-namespace ousia {
-namespace variant {
-
-class Reader {
-private:
- /**
- * Parses a string which may either be enclosed by " or ', unescapes
- * entities in the string as specified for JavaScript.
- *
- * @param reader is a reference to the CharReader instance which is
- * the source for the character data. The reader will be positioned after
- * the terminating quote character or at the terminating delimiting
- * character.
- * @param logger is the logger instance that should be used to log error
- * messages and warnings.
- * @param delims is an optional set of delimiters after which parsing has to
- * be stopped (the delimiters may occur inside the actual string, but not
- * outside). If nullptr is given, no delimiter is used and a complete string
- * is read.
- */
- static std::pair<bool, std::string> parseString(
- CharReader &reader, Logger &logger,
- const std::unordered_set<char> *delims);
-
-public:
- /**
- * Parses a string which may either be enclosed by " or ', unescapes
- * entities in the string as specified for JavaScript.
- *
- * @param reader is a reference to the CharReader instance which is
- * the source for the character data. The reader will be positioned after
- * the terminating quote character or at the terminating delimiting
- * character.
- * @param logger is the logger instance that should be used to log error
- * messages and warnings.
- * @param delims is a set of delimiters after which parsing has to
- * be stopped (the delimiters may occur inside the actual string, but not
- * outside).
- */
- static std::pair<bool, std::string> parseString(
- CharReader &reader, Logger &logger,
- const std::unordered_set<char> &delims)
- {
- return parseString(reader, logger, &delims);
- }
-
- /**
- * Parses a string which may either be enclosed by " or ', unescapes
- * entities in the string as specified for JavaScript.
- *
- * @param reader is a reference to the CharReader instance which is
- * the source for the character data. The reader will be positioned after
- * the terminating quote character or at the terminating delimiting
- * character.
- * @param logger is the logger instance that should be used to log error
- * messages and warnings.
- */
- static std::pair<bool, std::string> parseString(CharReader &reader,
- Logger &logger)
- {
- return parseString(reader, logger, nullptr);
- }
-
- /**
- * Extracts an unescaped string from the given buffered char reader
- * instance. This function just reads text until one of the given delimiter
- * characters is reached.
- *
- * @param reader is a reference to the CharReader instance which is
- * the source for the character data. The reader will be positioned at the
- * terminating delimiting character.
- * @param delims is a set of characters which will terminate the string.
- * These characters are not included in the result. May not be nullptr.
- */
- static std::pair<bool, std::string> parseUnescapedString(
- CharReader &reader, Logger &logger,
- const std::unordered_set<char> &delims);
-
- /**
- * Parses an integer from the given buffered char reader instance until one
- * of the given delimiter characters is reached.
- *
- * @param reader is a reference to the CharReader instance from
- * which the character data should been reader. The reader will be
- * positioned at the terminating delimiting character or directly after the
- * integer.
- */
- static std::pair<bool, int64_t> parseInteger(
- CharReader &reader, Logger &logger,
- const std::unordered_set<char> &delims);
-
- /**
- * Parses an double from the given buffered char reader instance until one
- * of the given delimiter characters is reached.
- *
- * @param reader is a reference to the CharReader instance from
- * which the character data should been reader. The reader will be
- * positioned at the terminating delimiting character or directly after the
- * integer.
- */
- static std::pair<bool, double> parseDouble(
- CharReader &reader, Logger &logger,
- const std::unordered_set<char> &delims);
-
- /**
- * Parses an array of values.
- */
- static std::pair<bool, Variant::arrayType> parseArray(
- CharReader &reader, Logger &logger, char delim = 0);
-
- /**
- * Tries to parse the most specific item from the given stream until one of
- * the given delimiters is reached or a meaningful literal has been read.
- * The resulting variant represents the value that has been read.
- *
- * @param reader is a reference to the CharReader instance which is
- * the source for the character data. The reader will be positioned at the
- * terminating delimiting character.
- * @param delims is a set of characters which will terminate the string.
- * These characters are not included in the result. May not be nullptr.
- */
- static std::pair<bool, Variant> parseGeneric(
- CharReader &reader, Logger &logger,
- const std::unordered_set<char> &delims);
-};
-}
-}
-
-#endif /* _OUSIA_VARIANT_READER_HPP_ */
-