public boolean isOK(JointMultigram m) // TODO: lhs all vowels <-> rhs all vowels { // CHANGE: multigram ending with $ is ok iff it is ok without th e $ if (m.lhs.endsWith(Alphabet.finalBoundaryString) || m.rhs.endsWith(Alphabet.finalBoundaryString)) { if (!(m.lhs.endsWith(Alphabet.finalBoundaryString) && m.rhs.endsWith(Alphabet.finalBoundaryString))) return false; String lhsx = m.lhs.substring(0, m.lhs.length() - 1); String rhsx = m.rhs.substring(0, m.rhs.length() - 1); JointMultigram mm = m.set.createMultigram(lhsx, rhsx); return isOK(mm); } if (m.lhs.contains(Alphabet.initialBoundaryString) || m.rhs.contains(Alphabet.finalBoundaryString)) // this is no good { return m.lhs.equals(m.rhs) && (m.rhs.equals(Alphabet.initialBoundaryString) || m.rhs.equals(Alphabet.finalBoundaryString)); } if (m.isSingleton()) return true; if (isPossibleGrapheme(m.lhs, true) && isPossibleGrapheme(m.rhs, false)) return true; return false; }
public boolean isOK(JointMultigram m) // TODO: lhs all vowels <-> rhs all vowels { boolean x = m.isSingleton() || lengthOneOrTwo(m.lhs, m.rhs); System.err.println(x + " " + m); return x; }