Implemeted a few basic string escapes.

ver1_5_1
Chris Laurel 2001-04-27 06:59:35 +00:00
parent 5ccc4a443f
commit 7846d3c91b
2 changed files with 32 additions and 6 deletions

View File

@ -159,17 +159,42 @@ Tokenizer::TokenType Tokenizer::nextToken()
break;
case StringState:
if (nextChar != '"')
{
state = StringState;
textToken += (char) nextChar;
}
else
if (nextChar == '"')
{
newToken = TokenString;
haveValidString = true;
nextChar = readChar();
}
else if (nextChar == '\\')
{
state = StringEscapeState;
}
else
{
state = StringState;
textToken += (char) nextChar;
}
break;
case StringEscapeState:
if (nextChar == '\\')
{
textToken += '\\';
}
else if (nextChar == 'n')
{
textToken += '\n';
}
else if (nextChar == '"')
{
textToken += '"';
}
else
{
newToken = TokenError;
syntaxError("Unknown escape code in string");
}
state = StringState;
break;
case NumberState:

View File

@ -60,6 +60,7 @@ private:
CommentState = 7,
StringState = 8,
ErrorState = 9,
StringEscapeState = 10,
};
istream* in;