private Token parseRawStringLiteral() {
        int currentLine = line;
        int currentColumn = column;
        expect('\'');

        StringBuilder builder = new StringBuilder();
        while (!eof()) {
            if (peek() == '\\') {
                skip();
                if (peek() == '\'') {
                    skip();
                    builder.append('\'');
                } else {
                    if (peek() == '\\') {
                        skip();
                    }
                    builder.append('\\');
                }
            } else if (peek() == '\'') {
                skip();
                String result = builder.toString();
                return new Token(TokenType.LITERAL,
                        new LiteralExpression(result, currentLine, currentColumn),
                        currentLine,
                        currentColumn);
            } else {
                builder.append(peek());
                skip();
            }
        }

        throw syntax("Unclosed raw string: " + builder);
    }
Gets a slice of the expression starting from the given 0-based
character position, read all the way through to the current
position of the parser.

@param start Position to slice from, ending at the current position.
@return Returns the slice of the expression from {@code start} to {@link #position}.
smithy-jmespath/src/main/java/software/amazon/smithy/jmespath/Lexer.java