addIrregularInflectionRule method

void addIrregularInflectionRule(
  1. String singular,
  2. String plural
)

Implementation

void addIrregularInflectionRule(String singular, String plural) {
  final s0 = singular.substring(0, 1);
  final srest = singular.substring(1);
  final p0 = plural.substring(0, 1);
  final prest = plural.substring(1);

  if (s0.toUpperCase() == p0.toUpperCase()) {
    addInflectionRule('($s0)$srest\$', (Match m) => '${m[1]}$srest');
    addInflectionRule('($p0)$prest\$', (Match m) => '${m[1]}$srest');
  } else {
    addInflectionRule('${s0.toUpperCase()}(?i)$srest\$',
        (Match m) => '${s0.toUpperCase()}$srest',);
    addInflectionRule('${s0.toLowerCase()}(?i)$srest\$',
        (Match m) => '${s0.toUpperCase()}$srest',);
    addInflectionRule('${p0.toUpperCase()}(?i)$prest\$',
        (Match m) => '${s0.toUpperCase()}$srest',);
    addInflectionRule('${p0.toLowerCase()}(?i)$prest\$',
        (Match m) => '${s0.toLowerCase()}$srest',);
  }
}