code: def shaddalike(partial, fully):
      
      # المدخل ليس به شدة، لا داعي للبحث
      if not has_shadda(partial):
          return True
      # المدخل به شدة، والنتيجة ليس بها شدة، خاطئ
      elif not has_shadda(fully) and has_shadda(partial):
          return False
          # المدخل والمخرج بهما شدة، نتأكد من موقعهما
      partial = strip_harakat(partial)
      fully = strip_harakat(fully)
      pstack = stack.Stack(partial)
      vstack = stack.Stack(fully)
      plast = pstack.pop()
      vlast = vstack.pop()
      # if debug: print "+0",  Pstack,  Vstack
      while plast != None and vlast != None:
          if plast == vlast:
              plast = pstack.pop()
              vlast = vstack.pop()
          elif plast == SHADDA and vlast != SHADDA:
              # if debug: print "+2",  Pstack.items, Plast,  Vstack.items, Vlast
              break
          elif plast != SHADDA and vlast == SHADDA:
              # if debug: print "+2",  Pstack.items, Plast,  Vstack.items, Vlast
              vlast = vstack.pop()
          else:
              # if debug: print "+2",  Pstack.items, Plast,  Vstack.items, Vlast
              break
      if not (pstack.is_empty() and vstack.is_empty()):
          return False
      else:
          return True
docs: If the two words has the same letters and the same harakats,  this fuction return True.
      The first word is partially vocalized, the second is fully
      if the partially contians a shadda, it must be at the same place in the fully
  
  
      @param partial: the partially vocalized word
      @type partial: unicode
      @param fully: the fully vocalized word
      @type fully: unicode
      @return: if contains shadda
      @rtype: Boolean