sS flexMatchIC_namedVars(S id, S name, S s) { new Matches m; L tok = javaTokC(name); if (l(tok) < 2) null; //replace(tok, "*", "\\*"); if (tok.contains("*")) null; int n = numberOfXYZVars_c(tok); if (n == 0) null; S pat = formatXYZ(name, rep(n, "*")); bool yes = flexMatchIC2(pat, s, m, false); if (englishToConceptLanguage_xyz_debug && yes) print("xyz: " + n + " " + pat + " - " + s + " => " + (yes ? struct(m) : "-")); if (!yes) null; if (n != l(m.m)) null; new TreeMap map; for i over tok: { int x = xyzVarToIndex(tok.get(i)); if (x != 0) map.put(i, englishToConceptLanguage_xyz_sub(name, s, m.m[x-1])); } ret aiUsing(id) + " " + join(" ", values(map)); }