private Token parseLbracket() {
        int currentLine = line;
        int currentColumn = column;
        skip();
        switch (peek()) {
            case ']':
                skip();
                return new Token(TokenType.FLATTEN, null, currentLine, currentColumn);
            case '?':
                skip();
                return new Token(TokenType.FILTER, null, currentLine, currentColumn);
            default:
                return new Token(TokenType.LBRACKET, null, currentLine, currentColumn);
        }
    }
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