// finds a fixed element, e.g. a Java token
static class LCertainElement extends LearnerImpl {
static boolean debug;
ReversibleFunction f; // e.g. JavaTok
String element;
*(ReversibleFunction *f) {}
public void processInOut(Object _in, Object _out) {
String in = (String) _in, out = (String) _out;
Set<String> set = new HashSet<String>(getMarked(out));
if (debug)
System.out.println("LCertainElement: set=" + set);
if (set.size() == 1)
element = set.iterator().next();
if (debug)
System.out.println("LCertainElement: element=" + element);
}
public Object processIn(Object _in) {
List<String> l = (List<String>) f.process(_in);
new List<String> l2;
for (String x : l)
l2.add(x.equals(element) ? "[[" + x + "]]" : x);
return f.unprocess(l2);
}
// returns positions in marked string (from/to/from/to...)
static List<Integer> getFindMarkers2(String s) {
List<Integer> l = new ArrayList<Integer>();
int i = 0;
while (i < s.length()) {
int j = s.indexOf("[[", i);
if (j < 0) break;
int k = s.indexOf("]]", j+2);
if (k < 0) break;
l.add(j);
l.add(k+2);
i = k+2;
}
return l;
}
static List<String> getMarked(String s) {
List<Integer> l = getFindMarkers2(s);
new List<String> result;
for (int i = 0; i < l.size(); i += 2)
result.add(s.substring(l.get(i)+2, l.get(i+1)-2));
return result;
}
}download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
| ID | Author/Program | Comment | Date |
|---|---|---|---|
| 808 | #1000604 (pitcher) | 2015-08-18 00:07:22 |