// learns to remove input suffixes. static class LRemoveInputSuffix extends LearnerImpl { static boolean debug; String suffix; static boolean failFast = false; public void processInOut(Object _in, Object _out) { String in = (String) _in, out = (String) _out; if (!in.startsWith(out)) fail(); suffix = overwrite(suffix, in.substring(out.length())); } public String processIn(Object _in) { String in = (String) _in; if (!in.endsWith(suffix)) if (failFast) fail(); else return in; return in.substring(0, in.length()-suffix.length()); } }