private JmespathExpression parseProjectionRhs(int lbp) {
        Token next = iterator.expectNotEof();
        if (next.type == TokenType.DOT) {
            // foo.*.bar
            iterator.expect(TokenType.DOT);
            return parseDotRhs(lbp);
        } else if (next.type == TokenType.LBRACKET || next.type == TokenType.FILTER) {
            // foo[*][1], foo[*][?baz]
            return expression(lbp);
        } else if (next.type.lbp < PROJECTION_STOP) {
            // foo.* || bar
            return new CurrentExpression(next.line, next.column);
        } else {
            throw iterator.syntax("Invalid projection");
        }
    }
Tokens that can follow led tokens.
smithy-jmespath/src/main/java/software/amazon/smithy/jmespath/Parser.java