summaryrefslogtreecommitdiff
path: root/src/core/parser/generic/ParserStateHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/parser/generic/ParserStateHandler.cpp')
-rw-r--r--src/core/parser/generic/ParserStateHandler.cpp31
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)) {