@Override public Boolean apply(KVariable v) { return v.name().equals(KLabels.THIS_CONFIGURATION); } }.apply(r.body());
@Override public DefaultMutableTreeNode apply(KVariable k) { return new DefaultMutableTreeNode(k.name()); }
private boolean isHOLEVar(K k) { return k instanceof KVariable && ((KVariable) k).name().equals("HOLE"); } }.apply(body);
public boolean isAnyVar() { return var.value().equals(ResolveAnonVar.ANON_VAR.name()); } }
@Override public void apply(KVariable k) { if (k.name().startsWith("!")) { freshVars.add(k); } super.apply(k); } }.apply(term);
@Override public void apply(KVariable k) { if (!k.name().equals("HOLE")) { vars.put(k, k); finalHolePosition[0] = currentHolePosition[0]; } else { holeVar = k; currentHolePosition[0]++; } super.apply(k); }
private void check(K body, boolean isBody) { Set<KVariable> unbound = new HashSet<>(); new ComputeUnboundVariables(isBody, errors, vars, unbound::add).apply(body); for (KVariable k : unbound) { errors.add(KEMException.compilerError("Found variable " + k.name() + " on right hand side of rule, not bound on left hand side." + " Did you mean \"?" + k.name() + "\"?", k)); } }
@Override public void apply(KVariable k) { if (context != null) { k = KVariable(k.name(), k.att().add(Sort.class, context)); } if (isRHS()) { if (!k.name().equals(KLabels.THIS_CONFIGURATION) && ((k.equals(ResolveAnonVar.ANON_VAR) && !isLHS()) || (!k.equals(ResolveAnonVar.ANON_VAR) && !(k.name().startsWith("?") || k.name().startsWith("!")) && !vars.contains(k)))) { reporter.accept(k); } } }
@Override public scala.collection.Set<K> apply(KVariable k) { if (k.name().equals("HOLE")) { return org.kframework.Collections.Set(k); } else { return super.apply(k); } } }.apply(body).size();
@Override public void apply(KVariable k) { sb.append("Var"); convert(k.name()); sb.append(":"); convert(k.att().getOptional(Sort.class).orElse(Sorts.K()), false); }
@Override public KVariable apply(KVariable k) { return KVariable(k.name(), k.att()); }
public K apply(KVariable kvar) { return new SortedADT.SortedKVariable(kvar.name(), kvar.att()); } }.apply(ruleBody);
private void applyVarLhs(KVariable k, StringBuilder sb, VarInfo vars) { String varName = encodeStringToVariable(k.name()); vars.vars.put(k, varName); Sort s = k.att().getOptional(Sort.class).orElse(Sort("")); if (mainModule.sortAttributesFor().contains(s)) { String hook = mainModule.sortAttributesFor().apply(s).<String>getOptional("hook").orElse(""); if (sortVarHooks.containsKey(hook)) { sb.append("("); sb.append(sortVarHooks.get(hook).apply(s)); sb.append(" as ").append(varName).append(")"); return; } } sb.append(varName); }
@Override public K apply(KVariable k) { if (normalization.containsKey(k)) { return KVariable(normalization.get(k), k.att().add("denormal", k.name())); } return super.apply(k); } }.apply(denormal);
private KVariable normalize(KVariable var) { if (var.att().contains("denormal")) return var; if (!vars.containsKey(var)) { vars.put(var, "_" + counter++); } return KVariable(vars.get(var), var.att().add("denormal", var.name())); }
private static VarKey getVarKey(Constant c) { if (c.value().equals(ResolveAnonVar.ANON_VAR.name())) { return new VarKey(c); // wildcard values are compared including location } else { return new VarKey(Constant.apply(c.value(), c.production(), Optional.empty(), Optional.empty())); } }
public K apply(KVariable kvar) { if (kvar instanceof SortedADT.SortedKVariable && ((SortedADT.SortedKVariable) kvar).sort().equals(Sorts.K()) && varCount.get(kvar) == 1 && !kvar.name().equals(KLabels.THIS_CONFIGURATION)) { return new SortedADT.SortedKVariable("THE_VARIABLE", Att.empty()); } else { return kvar; } } };
@Override public void apply(KVariable k) { if (k.att().contains("denormal")) { normalization.put(KVariable(k.att().get("denormal")), k.name()); } } }.apply(normal);
private String getVarName(KVariable var) { if (var.att().contains("denormal")) { return var.att().get("denormal"); } return var.name(); }