Поддержка экранирования символов \n \r

This commit is contained in:
Victor 2015-05-03 13:17:58 +03:00
parent 5cb777a80b
commit a426a6dc2c

View File

@ -178,8 +178,8 @@ public final class Lexer {
}
private void tokenizeText(char ch) {
if (ch == textStartChar) {
final int len = buffer.length();
if (ch == textStartChar) {
// Добавляем токен, если не было экранирования символа кавычки.
if (len == 0 ||
( (len > 0) && (buffer.charAt(len - 1) != '\\') )) {
@ -192,6 +192,13 @@ public final class Lexer {
return;
}
}
// Экранирование символов
if ( (len > 0) && (buffer.charAt(len - 1) == '\\') ) {
switch (ch) {
case 'n': buffer.setCharAt(len - 1, '\n'); return;
case 't': buffer.setCharAt(len - 1, '\t'); return;
}
}
buffer.append(ch);
}