@Override
    public Object visitOutput_attribute(@NotNull SiddhiQLParser.Output_attributeContext ctx) {

//        output_attribute
//                :attribute AS attribute_name
//                |attribute_reference
//        ;
        if (ctx.AS() != null) {
            OutputAttribute outputAttribute = new OutputAttribute((String) visit(ctx.attribute_name()),
                    (Expression) visit(ctx.attribute()));
            populateQueryContext(outputAttribute, ctx);
            return outputAttribute;
        } else {
            OutputAttribute outputAttribute = new OutputAttribute((Variable) visit(ctx.attribute_reference()));
            populateQueryContext(outputAttribute, ctx);
            return outputAttribute;
        }
    }
{@inheritDoc}
<p>The default implementation returns the result of calling
{@link #visitChildren} on {@code ctx}.</p>

@param ctx
modules/siddhi-query-compiler/src/main/java/io/siddhi/query/compiler/internal/SiddhiQLBaseVisitorImpl.java