class InnerOutputNameFormatter extends ExpressionFormatter.Formatter {
        @Override
        protected String visitQualifiedNameReference(QualifiedNameReference node, List<Expression> parameters) {<FILL_FUNCTION_BODY>}

        @Override
        protected String visitSubscriptExpression(SubscriptExpression node, List<Expression> parameters) {
            return node.base().accept(this, null) + '[' + node.index().accept(this, null) + ']';
        }

        @Override
        public String visitArrayComparisonExpression(ArrayComparisonExpression node, List<Expression> parameters) {
            return node.getLeft().accept(this, null) + ' ' +
                   node.getType().getValue() + ' ' +
                   node.quantifier().name() + '(' +
                   node.getRight().accept(this, null) + ')';
        }

        @Override
        protected String visitSubqueryExpression(SubqueryExpression node, List<Expression> parameters) {
            return super.visitSubqueryExpression(node, parameters).replace("\n", "");
        }
    }

            List<String> parts = node.getName().getParts();
            if (parts.isEmpty()) {
                throw new NoSuchElementException("Parts of QualifiedNameReference are empty: " + node.getName());
            }
            return parts.get(parts.size() - 1);
        
<no_super_class>