in codegen/src/main/java/software/amazon/awssdk/codegen/jmespath/parser/JmesPathParser.java [952:982]
private ParseResult<String> parseEscapedChar(int startPosition, int endPosition) {
if (endPosition > input.length()) {
logError("escaped-char", "Invalid end position", startPosition);
return ParseResult.error();
}
if (charsInRange(startPosition, endPosition) != 2) {
logError("escaped-char", "Invalid length", startPosition);
return ParseResult.error();
}
if (!startsWith(startPosition, '\\')) {
logError("escaped-char", "Expected '\\'", startPosition);
return ParseResult.error();
}
char escapedChar = input.charAt(startPosition + 1);
switch (escapedChar) {
case '"': return ParseResult.success("\"");
case '\\': return ParseResult.success("\\");
case '/': return ParseResult.success("/");
case 'b': return ParseResult.success("\b");
case 'f': return ParseResult.success("\f");
case 'n': return ParseResult.success("\n");
case 'r': return ParseResult.success("\r");
case 't': return ParseResult.success("\t");
default:
logError("escaped-char", "Invalid escape sequence", startPosition);
return ParseResult.error();
}
}