def processGaps(db, segmentation, password): if (segmentation == []): dynDictionaryID = parser.tagChunk(password) segment = database.Fragment(0, dynDictionaryID, password) segmentation.append((segment, 0, len(password))) return segmentation lastEndIndex = 0 nextStartIndex = 0 i = 0 try: for x in segmentation: (xw, xs, xe) = x nextStartIndex = xs if (nextStartIndex > lastEndIndex): # find the gap, see if it is a #/sc chunk segmentation = addInTheGapsHelper(db, segmentation, i, password, lastEndIndex, nextStartIndex) lastEndIndex = xe i = i + 1 if (len(password) > lastEndIndex): segmentation = addInTheGapsHelper(db, segmentation, i, password, lastEndIndex, len(password)) except : print ("Warning: caught unknown error in addTheGaps -- resultSet=", resultSet, "password", password) return segmentation
def addInTheGapsHelper(db, segmentation, i, password, lastEndIndex, nextStartIndex): # attention for the strip() call! space info is lost! who cares?! gap = password[lastEndIndex:nextStartIndex].strip() dynDictionaryID = parser.tagChunk(gap) if ((len(gap) > 0) and (dynDictionaryID > 0)): segment = database.Fragment(0, dynDictionaryID, gap) segmentation.insert(i, (segment, lastEndIndex, nextStartIndex)) return segmentation