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 void apply(KToken k) { sb.append("\\dv{"); convert(k.sort(), false); sb.append("}("); if (module.sortAttributesFor().get(k.sort()).getOrElse(() -> Att.empty()).getOptional("hook").orElse("").equals("STRING.String")) { sb.append(k.s()); } else { sb.append(StringUtil.enquoteKString(k.s())); } sb.append(")"); }
@Override public void apply(KToken k) { if (inBooleanExp && k.sort().equals(Sorts.Bool())) { sb.append(k.s()); return; } if (mainModule.sortAttributesFor().contains(k.sort())) { String hook = mainModule.sortAttributesFor().apply(k.sort()).<String>getOptional("hook").orElse(""); if (sortHooks.containsKey(hook)) { sb.append(sortHooks.get(hook).apply(k.s())); return; } } sb.append("KToken ("); apply(k.sort()); sb.append(", "); sb.append(enquoteString(k.s())); sb.append(")"); }
if (mainModule.sortAttributesFor().contains(s)) { String hook = mainModule.sortAttributesFor().apply(s).<String>getOptional("hook").orElse(""); if (!sortVarHooks.containsKey(hook)) { h.b = true;
Set<Sort> arraySorts = sorts.stream().filter(s -> mainModule.sortAttributesFor().get(s).getOrElse(() -> Att()).<String>getOptional("hook") .orElse(".").equals("ARRAY.Array")).collect(Collectors.toSet()); for (Sort sort : arraySorts) { encodeStringToIdentifier(sb, sort); sb.append(" -> "); encodeStringToIdentifier(sb, KLabel(mainModule.sortAttributesFor().apply(sort).get("unit"))); sb.append("\n"); encodeStringToIdentifier(sb, sort); sb.append(" -> "); encodeStringToIdentifier(sb, KLabel(mainModule.sortAttributesFor().apply(sort).get("element"))); sb.append("\n");
Sort predicateSort = (mainModule.attributesFor().apply(functionLabel).get(Attribute.PREDICATE_KEY, Sort.class)); stream(mainModule.definedSorts()).filter(s -> mainModule.subsorts().greaterThanEq(predicateSort, s)).distinct() .filter(sort -> mainModule.sortAttributesFor().contains(sort)).forEach(sort -> { String sortHook = mainModule.sortAttributesFor().apply(sort).<String>getOptional("hook").orElse(""); if (predicateRules.containsKey(sortHook)) { sb.append("| ");
KVariable v = KVariable("K" + i++, Att().add(Sort.class, nt.sort())); klist.add(v); if (!mutable(mod.sortAttributesFor()).getOrDefault(sort, Att()).contains("flatPredicate")) { side.add(KApply(KLabel("is" + nt.sort().toString()), v));
return; if (mainModule.sortAttributesFor().contains(s)) { String hook2 = mainModule.sortAttributesFor().apply(s).<String>getOptional("hook").orElse(""); if (sortVarHooks.containsKey(hook2)) { if (k.klist().items().size() == 1) {
sb.append("\n"); for (Sort sort : iterable(module.definedSorts())) { Att att = module.sortAttributesFor().get(sort).getOrElse(() -> KORE.Att()); collectAttributes(attributes, att); Att att = module.sortAttributesFor().get(sort).getOrElse(() -> KORE.Att()); if (att.contains(Attribute.HOOK_KEY)) { if (collectionSorts.contains(att.get(Attribute.HOOK_KEY))) { Att sortAtt = module.sortAttributesFor().get(sort).getOrElse(() -> KORE.Att()); if (!hasToken && sortAtt.contains("token")) { numTerms++;
String hookAtt = mod.sortAttributesFor().get(expectedSort).getOrElse(() -> Att()).getOptional("hook").orElse(""); if (hookAtt.equals("MAP.Map") || hookAtt.equals("SET.Set") || hookAtt.equals("LIST.List")) { for (KLabel collectionLabel : collectionFor.keySet()) {