}
class PRED_system_predicate_1_118 extends PRED_system_predicate_1 {
public Predicate exec(Prolog engine) {
// system_predicate(bagof(A,B,C)):-true
Term a1;
Predicate cont;
a1 = engine.aregs[1];
cont = engine.cont;
// system_predicate(bagof(A,B,C)):-[]
a1 = a1.dereference();
if (a1.isStructure()){
if (! s118.equals(((StructureTerm)a1).functor()))
return engine.fail();
Term[] args = ((StructureTerm)a1).args();
} else if (a1.isVariable()){
Term[] args = {new VariableTerm(engine), new VariableTerm(engine), new VariableTerm(engine)};
((VariableTerm) a1).bind(new StructureTerm(s118, args), engine.trail);
} else {
return engine.fail();
}