--- /dev/null
+
+#include <algorithm>
+
+#include "TTokenizer.hh"
+#include "TPushLexer.hh"
+
+std::vector<TToken>
+TTokenizer::tokenize(const std::string& s)
+{
+ TPushLexer lexer(*this);
+
+ tokens.clear();
+ for (std::string::const_iterator p = s.begin();
+ p != s.end();
+ p++)
+ lexer.push(*p);
+ //lexer.push('\n');
+
+ std::vector<TToken> res;
+ res.reserve(tokens.size());
+ copy(tokens.begin(), tokens.end(), back_inserter(res));
+
+ return res;
+}
+
+void
+TTokenizer::push(const TToken& token)
+{
+ tokens.push_back(token);
+}
+