summaryrefslogtreecommitdiff
path: root/src/plugins/plain/DynamicTokenizer.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-08 18:48:07 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-08 18:48:07 +0100
commitf713b1d393230e7083727d457623fdac878eb248 (patch)
treeb32d2fb6043b81e3ceb85df808a82ddbe39e59e1 /src/plugins/plain/DynamicTokenizer.cpp
parent4854509f8add1e2ff167623fb0e8d4216d9d6023 (diff)
DynamicTokenizer now gets the reader as a parameter to read and peek -- the beauty of this tokenizer is that it has no internal state depending on the reader, so it doesn't need to hold a reference to it
Diffstat (limited to 'src/plugins/plain/DynamicTokenizer.cpp')
-rw-r--r--src/plugins/plain/DynamicTokenizer.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/plugins/plain/DynamicTokenizer.cpp b/src/plugins/plain/DynamicTokenizer.cpp
index a8f2317..f2cfcd1 100644
--- a/src/plugins/plain/DynamicTokenizer.cpp
+++ b/src/plugins/plain/DynamicTokenizer.cpp
@@ -345,14 +345,13 @@ public:
/* Class DynamicTokenizer */
-DynamicTokenizer::DynamicTokenizer(CharReader &reader,
- WhitespaceMode whitespaceMode)
- : reader(reader), whitespaceMode(whitespaceMode), nextTokenTypeId(0)
+DynamicTokenizer::DynamicTokenizer(WhitespaceMode whitespaceMode)
+ : whitespaceMode(whitespaceMode), nextTokenTypeId(0)
{
}
template <typename TextHandler, bool read>
-bool DynamicTokenizer::next(DynamicToken &token)
+bool DynamicTokenizer::next(CharReader &reader, DynamicToken &token)
{
// If we're in the read mode, reset the char reader peek position to the
// current read position
@@ -437,28 +436,28 @@ bool DynamicTokenizer::next(DynamicToken &token)
return match.hasMatch();
}
-bool DynamicTokenizer::read(DynamicToken &token)
+bool DynamicTokenizer::read(CharReader &reader,DynamicToken &token)
{
switch (whitespaceMode) {
case WhitespaceMode::PRESERVE:
- return next<PreservingTextHandler, true>(token);
+ return next<PreservingTextHandler, true>(reader, token);
case WhitespaceMode::TRIM:
- return next<TrimmingTextHandler, true>(token);
+ return next<TrimmingTextHandler, true>(reader, token);
case WhitespaceMode::COLLAPSE:
- return next<CollapsingTextHandler, true>(token);
+ return next<CollapsingTextHandler, true>(reader, token);
}
return false;
}
-bool DynamicTokenizer::peek(DynamicToken &token)
+bool DynamicTokenizer::peek(CharReader &reader,DynamicToken &token)
{
switch (whitespaceMode) {
case WhitespaceMode::PRESERVE:
- return next<PreservingTextHandler, false>(token);
+ return next<PreservingTextHandler, false>(reader, token);
case WhitespaceMode::TRIM:
- return next<TrimmingTextHandler, false>(token);
+ return next<TrimmingTextHandler, false>(reader, token);
case WhitespaceMode::COLLAPSE:
- return next<CollapsingTextHandler, false>(token);
+ return next<CollapsingTextHandler, false>(reader, token);
}
return false;
}
@@ -530,16 +529,16 @@ WhitespaceMode DynamicTokenizer::getWhitespaceMode() { return whitespaceMode; }
/* Explicitly instantiate all possible instantiations of the "next" member
function */
template bool DynamicTokenizer::next<PreservingTextHandler, false>(
- DynamicToken &token);
+ CharReader &reader, DynamicToken &token);
template bool DynamicTokenizer::next<TrimmingTextHandler, false>(
- DynamicToken &token);
+ CharReader &reader, DynamicToken &token);
template bool DynamicTokenizer::next<CollapsingTextHandler, false>(
- DynamicToken &token);
+ CharReader &reader,DynamicToken &token);
template bool DynamicTokenizer::next<PreservingTextHandler, true>(
- DynamicToken &token);
+ CharReader &reader,DynamicToken &token);
template bool DynamicTokenizer::next<TrimmingTextHandler, true>(
- DynamicToken &token);
+ CharReader &reader,DynamicToken &token);
template bool DynamicTokenizer::next<CollapsingTextHandler, true>(
- DynamicToken &token);
+ CharReader &reader,DynamicToken &token);
}