private ParseResult parseEscapedChar()

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();
        }
    }