Example #1
0
 @Override
 public void visit(BuiltinMap builtinMap) {
   for (java.util.Map.Entry<Term, Term> entry : builtinMap.getEntries().entrySet()) {
     entry.getKey().accept(this);
     entry.getValue().accept(this);
   }
   visit((Collection) builtinMap);
 }
 @Override
 public void visit(BuiltinMap node) {
   if (node.isGround() && node.isNormal()) {
     rhsSchedule.add(RHSInstruction.PUSH(node));
   } else {
     int sizeBase = 0;
     for (Term base : node.baseTerms()) {
       base.accept(this);
       sizeBase++;
     }
     int sizeElem = 0;
     for (Map.Entry<Term, Term> entry : node.getEntries().entrySet()) {
       entry.getValue().accept(this);
       entry.getKey().accept(this);
       sizeElem++;
     }
     rhsSchedule.add(
         RHSInstruction.CONSTRUCT(
             new Constructor(ConstructorType.BUILTIN_MAP, sizeElem, sizeBase)));
   }
 }