Lexer: Skipping whitespace on ::readWord at SOL was a mistake
This commit is contained in:
@@ -1324,11 +1324,6 @@ bool Lexer::readWord (
|
|||||||
{
|
{
|
||||||
std::string::size_type eos = text.length ();
|
std::string::size_type eos = text.length ();
|
||||||
|
|
||||||
// Skip initial whitespace.
|
|
||||||
while (cursor <= eos &&
|
|
||||||
Lexer::isWhitespace(text[cursor]))
|
|
||||||
++cursor;
|
|
||||||
|
|
||||||
word = "";
|
word = "";
|
||||||
int c;
|
int c;
|
||||||
while ((c = text[cursor]))
|
while ((c = text[cursor]))
|
||||||
|
|||||||
@@ -243,8 +243,10 @@ int main (int argc, char** argv)
|
|||||||
cursor = 0;
|
cursor = 0;
|
||||||
t.ok (Lexer::readWord (text, cursor, word), "readWord \"one 'two' three\\ four\" --> true");
|
t.ok (Lexer::readWord (text, cursor, word), "readWord \"one 'two' three\\ four\" --> true");
|
||||||
t.is (word, "one", " word '" + word + "'");
|
t.is (word, "one", " word '" + word + "'");
|
||||||
|
cursor++;
|
||||||
t.ok (Lexer::readWord (text, cursor, word), "readWord \"one 'two' three\\ four\" --> true");
|
t.ok (Lexer::readWord (text, cursor, word), "readWord \"one 'two' three\\ four\" --> true");
|
||||||
t.is (word, "'two'", " word '" + word + "'");
|
t.is (word, "'two'", " word '" + word + "'");
|
||||||
|
cursor++;
|
||||||
t.ok (Lexer::readWord (text, cursor, word), "readWord \"one 'two' three\\ four\" --> true");
|
t.ok (Lexer::readWord (text, cursor, word), "readWord \"one 'two' three\\ four\" --> true");
|
||||||
t.is (word, "three four", " word '" + word + "'");
|
t.is (word, "three four", " word '" + word + "'");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user