@Override
        public Void visitFilterProjection(FilterProjectionExpression expression) {
            // e.g.: foo[?bar == `10`].baz
            // Don't emit a pointless the current node select.
            if (!(expression.getLeft() instanceof CurrentExpression)) {
                expression.getLeft().accept(this);
            }

            builder.append("[?");
            expression.getComparison().accept(this);
            builder.append(']');

            // Avoid unnecessary addition of extracting the current node.
            if (!(expression.getRight() instanceof CurrentExpression)) {
                // Add a "." if the right hand side needs it.
                if (rhsNeedsDot(expression.getRight())) {
                    builder.append('.');
                }
                expression.getRight().accept(this);
            }

            return null;
        }
Serialize the given JMESPath expression to a string.

@param expression JMESPath expression to serialize.
@return Returns the serialized expression.
smithy-jmespath/src/main/java/software/amazon/smithy/jmespath/ExpressionSerializer.java