defaultPresentVerbFunction function

String? defaultPresentVerbFunction(
  1. String verb
)

Implementation

String? defaultPresentVerbFunction(String verb) {
  // Gerunds
  final verbLookup = VerbLookup.instance;
  if (end(verb, "ing")) {
    var a = verbLookup._VBP[verb.replaceAll(r'/ing$/', "")];
    if (a != null) {
      return a[0];
    }
    var b = verbLookup._VBP[verb.replaceAll(r'/ing$/', "e")];
    if (b != null) {
      return b[0];
    }
    var c = verbLookup._VBP[verb.replaceAll(r'/.ing$/', "")];
    if (c != null) {
      return c[0];
    }
    var d = verbLookup._VBP[verb.replaceAll(r'/ying$/', "ie")];
    if (d != null) {
      return d[0];
    }
  }
  // VBZs
  else if (end(verb, "s")) {
    var a = verbLookup._VBP[verb.replaceAll(r'/s$/', "")];
    if (a != null) {
      return a[0];
    }
    var b = verbLookup._VBP[verb.replaceAll(r'/es$/', "")];
    if (b != null) {
      return b[0];
    }
    var c = verbLookup._VBP[verb.replaceAll(r'/ies$/', "y")];
    if (c != null) {
      return c[0];
    }
  }
  // VBNs & VBDs
  else if (end(verb, "ed")) {
    var a = verbLookup._VBP[verb.replaceAll(r'/ed$/', "")];
    if (a != null) {
      return a[0];
    }
    var b = verbLookup._VBP[verb.replaceAll(r'/d$/', "")];
    if (b != null) {
      return b[0];
    }
    var c = verbLookup._VBP[verb.replaceAll(r'/ied$/', "y")];
    if (c != null) {
      return c[0];
    }
    var d = verbLookup._VBP[verb.replaceAll(r'/ed$/', "y")];
    if (d != null) {
      return d[0];
    }
    var e = verbLookup._VBP[verb.replaceAll(r'/ed$/', "e")];
    if (e != null) {
      return e[0];
    }
    var f = verbLookup._VBP[verb.replaceAll(r'/.ed$/', "")];
    if (f != null) {
      return f[0];
    }
  }
  // finally defaults to porter stemmer
  return (verbLookup._VBP[PorterStemmer().stem(verb)] ?? <String?>[null])[0];
}