menksoftToUnicode method

String menksoftToUnicode(
  1. String inputString
)

Implementation

String menksoftToUnicode(String inputString) {
  if (inputString.isEmpty) return '';

  final outputString = StringBuffer();
  final menksoftWord = StringBuffer();

  // Loop through characters in string
  final length = inputString.length;
  for (var i = 0; i < length; i++) {
    final codeUnit = inputString.codeUnitAt(i);
    if (isMenksoft(codeUnit) && !Menksoft.isMenksoftSpace(codeUnit)) {
      menksoftWord.writeCharCode(codeUnit);
      continue;
    }

    if (menksoftWord.length > 0) {
      _appendMenksoftWord(outputString, menksoftWord);
      menksoftWord.clear();
    }

    // A space starts a new Mongol word but is not itself a Mongol char
    if (Menksoft.isMenksoftSpace(codeUnit)) {
      menksoftWord.writeCharCode(codeUnit);
      continue;
    }

    // non-Menksoft character
    outputString.writeCharCode(codeUnit);
  }

  // Add any final substring
  if (menksoftWord.length > 0) {
    _appendMenksoftWord(outputString, menksoftWord);
  }

  return outputString.toString();
}