private void convertParams(Option<KLabel> maybeKLabel, boolean hasR) { sb.append("{"); String conn = ""; if (hasR) { sb.append("R"); if (maybeKLabel.isDefined()) { conn = ", "; } } if (maybeKLabel.isDefined()) { for (Sort param : iterable(maybeKLabel.get().params())) { sb.append(conn); convert(param, true); conn = ", "; } } sb.append("}"); }
private void convert(KLabel klabel, boolean var) { if (klabel.name().equals(KLabels.INJ)) { sb.append(klabel.name()); } else { sb.append("Lbl"); convert(klabel.name()); } sb.append("{"); String conn = ""; for (Sort param : iterable(klabel.params())) { sb.append(conn); convert(param, var); conn = ", "; } sb.append("}"); }
private void convert(KLabel klabel, Production prod) { if (klabel.name().equals(KLabels.INJ)) { sb.append(klabel.name()); } else { sb.append("Lbl"); convert(klabel.name()); } sb.append("{"); String conn = ""; for (Sort param : iterable(klabel.params())) { sb.append(conn); convert(param, prod); conn = ", "; } sb.append("}"); }
private KLabel apply(KLabel klabel) { if (klabel instanceof KVariable) return apply((KVariable) klabel); return KLabel(klabel.name(), klabel.params()); }
/** * Returns a {@code KLabelConstant} representation of label. The {@code KLabelConstant} * instances are cached to ensure uniqueness (subsequent invocations * of this method with the same label return the same {@code KLabelConstant} object). * * @param label string representation of the KLabel; must not be '`' escaped; * @return AST term representation the the KLabel; */ public static KLabelConstant of(org.kframework.kore.KLabel label, Definition definition) { return cache.computeIfAbsent(Pair.of(definition.signaturesOf(label.name()), definition.kLabelAttributesOf(label)), p -> new ConcurrentHashMap<>()) .computeIfAbsent(label.toString(), l -> new KLabelConstant( label.name(), label.params(), maxOrdinal.getAndIncrement(), definition.signaturesOf(label.name()), definition.allSorts(), definition.kLabelAttributesOf(label))); }
private void convert(Sort sort, Production prod) { convert(sort, prod.klabel().isDefined() && prod.klabel().get().params().contains(sort)); }
KApply kapp = (KApply)term; if (kapp.klabel().name().equals("inj")) { return kapp.klabel().params().apply(1);