@Override public void eval(Interpreter interpreter, Expression... args) { Bag eres = null; if (args.length < 1) { eres = new Bag(); } else { // mamy generyczny bag - args[1] okresla jego typ Expression bagTypeExpr = args[1]; bagTypeExpr.accept(interpreter, null); QueryResult qr = interpreter.getQres().pop(); QueryResult clazz = Utils.collectionToObject(qr); JavaClass<Collection> jc = (JavaClass<Collection>) clazz; try { Collection c = jc.value.newInstance(); eres = new Bag<Collection<QueryResult>>(c); } catch (Exception e) { throw new SBQLException(e); } } QueryResult e1res = interpreter.getQres().pop(); StructSBQL s; if (e1res instanceof StructSBQL) { s = (StructSBQL) e1res; } else { s = new StructSBQL(); if (e1res instanceof Collection) { s.addAll((Collection) e1res); } else { s.add(e1res); } } eres.addAll(s); interpreter.getQres().push(eres); }