diff options
-rw-r--r-- | src/formats/osml/OsmlParser.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/formats/osml/OsmlParser.cpp b/src/formats/osml/OsmlParser.cpp index 519a2d8..c77da09 100644 --- a/src/formats/osml/OsmlParser.cpp +++ b/src/formats/osml/OsmlParser.cpp @@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <core/common/Logger.hpp> #include <core/parser/stack/GenericParserStates.hpp> #include <core/parser/stack/Stack.hpp> #include <core/parser/ParserContext.hpp> @@ -34,6 +35,11 @@ using namespace parser_stack; class OsmlParserImplementation { private: /** + * Reference at the logger. + */ + Logger &logger; + + /** * OsmlStreamParser instance responsible for converting the input stream * into a series of osml events that are relayed to the Stack class. */ @@ -55,7 +61,9 @@ public: * used. */ OsmlParserImplementation(CharReader &reader, ParserContext &ctx) - : parser(reader, ctx.getLogger()), stack(ctx, GenericParserStates) + : logger(ctx.getLogger()), + parser(reader, logger), + stack(ctx, GenericParserStates) { } @@ -68,6 +76,7 @@ public: bool needsDocument = true; while (true) { OsmlStreamParser::State state = parser.parse(); + logger.setDefaultLocation(parser.getLocation()); switch (state) { case OsmlStreamParser::State::COMMAND: { // Implicitly create a "document" element if the first |