Extract duplicated code into a method
This commit is contained in:
parent
0ed6d4854d
commit
63da95a9d9
|
@ -348,16 +348,7 @@ final class Lexer implements Closeable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (isEscape(c)) {
|
} else if (isEscape(c)) {
|
||||||
if (isEscapeDelimiter()) {
|
appendNextEscapedCharacterToToken(token);
|
||||||
token.content.append(delimiter);
|
|
||||||
} else {
|
|
||||||
final int unescaped = readEscape();
|
|
||||||
if (unescaped == EOF) { // unexpected char after escape
|
|
||||||
token.content.append((char) c).append((char) reader.getLastChar());
|
|
||||||
} else {
|
|
||||||
token.content.append((char) unescaped);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (isEndOfFile(c)) {
|
} else if (isEndOfFile(c)) {
|
||||||
if (lenientEof) {
|
if (lenientEof) {
|
||||||
token.type = Token.Type.EOF;
|
token.type = Token.Type.EOF;
|
||||||
|
@ -412,16 +403,7 @@ final class Lexer implements Closeable {
|
||||||
}
|
}
|
||||||
// continue
|
// continue
|
||||||
if (isEscape(ch)) {
|
if (isEscape(ch)) {
|
||||||
if (isEscapeDelimiter()) {
|
appendNextEscapedCharacterToToken(token);
|
||||||
token.content.append(delimiter);
|
|
||||||
} else {
|
|
||||||
final int unescaped = readEscape();
|
|
||||||
if (unescaped == EOF) { // unexpected char after escape
|
|
||||||
token.content.append((char) ch).append((char) reader.getLastChar());
|
|
||||||
} else {
|
|
||||||
token.content.append((char) unescaped);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
token.content.append((char) ch);
|
token.content.append((char) ch);
|
||||||
}
|
}
|
||||||
|
@ -435,6 +417,27 @@ final class Lexer implements Closeable {
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Appends the next escaped character to the token's content.
|
||||||
|
*
|
||||||
|
* @param token
|
||||||
|
* the current token
|
||||||
|
* @throws IOException
|
||||||
|
* on stream access error
|
||||||
|
*/
|
||||||
|
private void appendNextEscapedCharacterToToken(final Token token) throws IOException {
|
||||||
|
if (isEscapeDelimiter()) {
|
||||||
|
token.content.append(delimiter);
|
||||||
|
} else {
|
||||||
|
final int unescaped = readEscape();
|
||||||
|
if (unescaped == EOF) { // unexpected char after escape
|
||||||
|
token.content.append(escape).append((char) reader.getLastChar());
|
||||||
|
} else {
|
||||||
|
token.content.append((char) unescaped);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Greedily accepts \n, \r and \r\n This checker consumes silently the second control-character...
|
* Greedily accepts \n, \r and \r\n This checker consumes silently the second control-character...
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue