@Override
    public Node visitQuery(SqlBaseParser.QueryContext context)
    {
        Query body = (Query) visit(context.queryNoWith());

        return new Query(
                getLocation(context),
                visitIfPresent(context.with(), With.class),
                body.getQueryBody(),
                body.getOrderBy(),
                body.getLimit());
    }
@ Override public Node visitQuery ( SqlBaseParser . QueryContext context ) { Query body = ( Query ) visit ( context . queryNoWith ( ) ) ; return new Query ( getLocation ( context ) , visitIfPresent ( context . with ( ) , With . class ) , body . getQueryBody ( ) , body . getOrderBy ( ) , body . getLimit ( ) ) ; }
********************** query expressions ********************