// for "find" tasks (e.g. "abcde" to "[[abc]]de") static class LInputPatternPrefixSuffix extends LearnerImpl { String findMarker1 = "[[", findMarker2 = "]]"; String prefix, suffix; public void processInOut(Object _in, Object _out) { String in = (String) _in, out = (String) _out; findMarkedStrings(); int i = out.indexOf(findMarker1), j = out.indexOf(findMarker2, i+1); if (j < 0) return; String s = out.substring(i+2, j); regexp = s.replaceAll("\\d+", Matcher.quoteReplacement("\\d+")); System.out.println("regexp: " + regexp); } public String processIn(Object _in) { String in = (String) _in; if (regexp.length() == 0) return in; else return in.replaceAll("(" + regexp + ")", findMarker1 + "$1" + findMarker2); } public void toJava(Code code) { code.line(code.var + " = ((String) " + code.var + ").replaceAll(" + quote("(" + regexp + ")") + ", \"[[$1]]\");"); } }