Example #1
0
 def __FindInTree(self, key: str,
                  lang: 'MorphLang') -> typing.List['Termin']:
     if (key is None):
         return None
     nod = self.__getRoot(lang, ((lang is None or lang.is_undefined))
                          and LanguageHelper.isLatin(key))
     i = 0
     while i < len(key):
         ch = ord(key[i])
         if (nod.children is None):
             return None
         wrapnn616 = RefOutArgWrapper(None)
         inoutres617 = Utils.tryGetValue(nod.children, ch, wrapnn616)
         nn = wrapnn616.value
         if (not inoutres617):
             return None
         nod = nn
         i += 1
     return nod.termins
Example #2
0
 def __RemoveFromTree(self, key: str, t: 'Termin') -> None:
     if (key is None):
         return
     nod = self.__getRoot(
         t.lang, t.lang.is_undefined and LanguageHelper.isLatin(key))
     i = 0
     while i < len(key):
         ch = ord(key[i])
         if (nod.children is None):
             return
         wrapnn614 = RefOutArgWrapper(None)
         inoutres615 = Utils.tryGetValue(nod.children, ch, wrapnn614)
         nn = wrapnn614.value
         if (not inoutres615):
             return
         nod = nn
         i += 1
     if (nod.termins is None):
         return
     if (t in nod.termins):
         nod.termins.remove(t)
Example #3
0
 def __AddToTree(self, key: str, t: 'Termin') -> None:
     if (key is None):
         return
     nod = self.__getRoot(
         t.lang, t.lang.is_undefined and LanguageHelper.isLatin(key))
     i = 0
     while i < len(key):
         ch = ord(key[i])
         if (nod.children is None):
             nod.children = dict()
         wrapnn612 = RefOutArgWrapper(None)
         inoutres613 = Utils.tryGetValue(nod.children, ch, wrapnn612)
         nn = wrapnn612.value
         if (not inoutres613):
             nn = TerminCollection.CharNode()
             nod.children[ch] = nn
         nod = nn
         i += 1
     if (nod.termins is None):
         nod.termins = list()
     if (not t in nod.termins):
         nod.termins.append(t)