diff options
Diffstat (limited to 'src/core/parser/generic/ParserStateHandler.cpp')
-rw-r--r-- | src/core/parser/generic/ParserStateHandler.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/core/parser/generic/ParserStateHandler.cpp b/src/core/parser/generic/ParserStateHandler.cpp index 96b9217..64e2bfa 100644 --- a/src/core/parser/generic/ParserStateHandler.cpp +++ b/src/core/parser/generic/ParserStateHandler.cpp @@ -24,11 +24,13 @@ namespace ousia { /* Class ParserStatedata */ -ParserStatedata::ParserStatedata(ParserContext &ctx, std::string name, - const ParserState &state, +ParserStatedata::ParserStatedata(ParserContext &ctx, + ParserStateCallbacks &callbacks, + std::string name, const ParserState &state, const ParserState &parentState, const SourceLocation location) : ctx(ctx), + callbacks(callbacks), name(std::move(name)), state(state), parentState(parentState), @@ -56,6 +58,31 @@ const ParserState &ParserStateHandler::state() { return data.state; } SourceLocation ParserStateHandler::location() { return data.location; } +void ParserStateHandler::setWhitespaceMode(WhitespaceMode whitespaceMode) +{ + data.callbacks.setWhitespaceMode(whitespaceMode); +} + +void ParserStateHandler::setDataType(VariantType type) +{ + data.callbacks.setDataType(type); +} + +bool ParserStateHandler::supportsToken(const std::string &token) +{ + return data.callbacks.supportsToken(token); +} + +void ParserStateHandler::registerToken(const std::string &token) +{ + data.callbacks.registerToken(token); +} + +void ParserStateHandler::unregisterToken(const std::string &token) +{ + data.callbacks.unregisterToken(token); +} + void ParserStateHandler::data(const std::string &data, int field) { if (Utils::hasNonWhitepaceChar(data)) { |