@Override public void apply(KRewrite k) { sb.append("\\rewrites{"); convert(k.att().get(Sort.class), false); sb.append("}("); apply(k.left()); sb.append(","); apply(k.right()); sb.append(")"); }
assert splitLeft.keySet().equals(splitRight.keySet()); return splitLeft.keySet().stream().collect(Collectors.toMap(sort -> sort, sort -> KRewrite(splitLeft.get(sort), splitRight.get(sort), rw.att()))); } else { throw KEMException.compilerError("Unexpected kind of term found in cell. Expected variable, "
@Override public K apply(KRewrite k) { k = (KRewrite) super.apply(k); return KRewrite(k.left(), k.right(), k.att()); }
@Override public K apply(KRewrite k) { K left = super.apply(k.left()); return KRewrite(left, k.right(), k.att()); } }.apply(term);
knode.add("lhs", toJson(rew.left())); knode.add("rhs", toJson(rew.right())); knode.add("att", rew.att().toString());
@Override public K apply(KRewrite k) { K l = apply(k.left()); K r = apply(k.right()); if (l != k.left() || r != k.right()) { return KRewrite(l, r, k.att()); } else { return k; } }
@Override public K apply(KRewrite k) { K l = apply(k.left()); lhs = false; K r = apply(k.right()); lhs = true; if (l != k.left() || r != k.right()) { return KRewrite(l, r, k.att()); } else { return k; } } }
@Override public K apply(KRewrite k) { K l = apply(k.left()); rhsOf = k; K r = apply(k.right()); rhsOf = null; if (l != k.left() || r != k.right()) { return KRewrite(l, r, k.att()); } else { return k; } } }.apply(term);
@Override public K apply(KRewrite k) { lhsOf = k; K l = apply(k.left()); lhsOf = null; rhsOf = k; K r = apply(k.right()); rhsOf = null; if (l != k.left() || r != k.right()) { return KRewrite(l, r, k.att()); } else { return k; } } }.apply(body);
@Override public K apply(KRewrite k) { isRHS = false; K left = apply(k.left()); isRHS = true; isLHS = false; K right = apply(k.right()); isLHS = true; if (left != k.left() || right != k.right()) { return KRewrite(left, right, k.att()); } else { return k; } } }
@Override public K apply(KRewrite k) { lhsOf = k; K l = apply(k.left()); lhsOf = null; rhsOf = k; K r = apply(k.right()); rhsOf = null; if (l != k.left() || r != k.right()) { return KRewrite(l, r, k.att()); } else { return k; } } }.apply(body);
private Rule resolveInitRule(Production streamProduction, Rule rule) { Sort streamSort = streamProduction.sort(); // InCell, OutCell String initLabel = GenerateSentencesFromConfigDecl.getInitLabel(streamSort); // initInCell, initOutCell KLabel cellLabel = streamProduction.klabel().get(); // <in>, <out> // rule initInCell(Init) => <in> ... </in> if (isInitRule(initLabel, cellLabel.name(), rule)) { KRewrite body = (KRewrite) rule.body(); KApply right = (KApply) body.right(); KList klist = getContentsOfInitRule(streamProduction); right = KApply(right.klabel(), klist, right.att()); body = KRewrite(body.left(), right, body.att()); return Rule(body, rule.requires(), rule.ensures(), rule.att()); } return rule; }