OSDN Git Service

CommentLexerの内部を実装した。<lexeme>内の終端記号以外の実装を完了した。
[simplecms/utakata.git] / src / lexer / string_lexer.cpp
index ebe049a..210b3ff 100755 (executable)
@@ -101,7 +101,7 @@ void lexer::EscapeLexer::ReadIntralines(reader::EncodingReader* reader) {
   lexer::TermLexer<term::LineEnding> lineend;
 
   while (intraline.CheckToken(reader) && !reader->IsEof()) {
-    reader->Read(intraline.ReadToken(reader));
+    reader->Read(intraline.previous_read_size());
   }
 
   if (!lineend.CheckToken(reader)) {
@@ -109,10 +109,10 @@ void lexer::EscapeLexer::ReadIntralines(reader::EncodingReader* reader) {
     THROW_EXCEPTION_(lexer::LexException,
                      unicode::Convert("must line ending after whitespaces"));
   }
-  reader->Read(lineend.ReadToken(reader));
+  reader->Read(lineend.previous_read_size());
 
   while (intraline.CheckToken(reader) && !reader->IsEof()) {
-    reader->Read(intraline.ReadToken(reader));
+    reader->Read(intraline.previous_read_size());
   }
 }
 
@@ -127,7 +127,7 @@ lexer::Lexeme* lexer::StringLexer::Lex(reader::EncodingReader* reader) {
   if (!string_delimiter.CheckToken(reader)) {
     return NULL;
   }
-  reader->Read(string_delimiter.ReadToken(reader));
+  reader->Read(string_delimiter.previous_read_size());
 
   lexer::EscapeLexer escape;
   unicode::UniString str;
@@ -135,7 +135,7 @@ lexer::Lexeme* lexer::StringLexer::Lex(reader::EncodingReader* reader) {
 
   while (!reader->IsEof()) {
     if (string_delimiter.CheckToken(reader)) {
-      reader->Read(string_delimiter.ReadToken(reader));
+      reader->Read(string_delimiter.previous_read_size());
       syntax_ok = true;
       break;
     }