diff options
Diffstat (limited to 'native/src/unigram_dictionary.h')
-rw-r--r-- | native/src/unigram_dictionary.h | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/native/src/unigram_dictionary.h b/native/src/unigram_dictionary.h index dcc8f2a9a..f6045c6ef 100644 --- a/native/src/unigram_dictionary.h +++ b/native/src/unigram_dictionary.h @@ -29,12 +29,6 @@ namespace latinime { class UnigramDictionary { - typedef enum { // Used as a return value for character comparison - SAME_OR_ACCENTED_OR_CAPITALIZED_CHAR, // Same char, possibly with different case or accent - NEAR_PROXIMITY_CHAR, // It is a char located nearby on the keyboard - UNRELATED_CHAR // It is an unrelated char - } ProximityType; - public: #ifdef NEW_DICTIONARY_FORMAT @@ -82,26 +76,26 @@ public: int maxAlternatives); #endif // NEW_DICTIONARY_FORMAT int getBigramPosition(int pos, unsigned short *word, int offset, int length) const; - int getSuggestions(const ProximityInfo *proximityInfo, const int *xcoordinates, + int getSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates, const int *ycoordinates, const int *codes, const int codesSize, const int flags, unsigned short *outWords, int *frequencies); ~UnigramDictionary(); private: - void getWordSuggestions(const ProximityInfo *proximityInfo, const int *xcoordinates, + void getWordSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates, const int *ycoordinates, const int *codes, const int codesSize, unsigned short *outWords, int *frequencies); bool isDigraph(const int* codes, const int i, const int codesSize) const; - void getWordWithDigraphSuggestionsRec(const ProximityInfo *proximityInfo, + void getWordWithDigraphSuggestionsRec(ProximityInfo *proximityInfo, const int *xcoordinates, const int* ycoordinates, const int *codesBuffer, const int codesBufferSize, const int flags, const int* codesSrc, const int codesRemain, const int currentDepth, int* codesDest, unsigned short* outWords, int* frequencies); - void initSuggestions(const int *codes, const int codesSize, unsigned short *outWords, - int *frequencies); + void initSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates, + const int *ycoordinates, const int *codes, const int codesSize, + unsigned short *outWords, int *frequencies); void getSuggestionCandidates(const int skipPos, const int excessivePos, const int transposedPos, int *nextLetters, const int nextLettersSize, const int maxDepth); - bool sameAsTyped(const unsigned short *word, int length) const; bool addWord(unsigned short *word, int length, int frequency); bool getSplitTwoWordsSuggestion(const int inputLength, const int firstWordStartPos, const int firstWordLength, @@ -118,8 +112,6 @@ private: int *nextLetters, const int nextLettersSize); bool needsToSkipCurrentNode(const unsigned short c, const int inputIndex, const int skipPos, const int depth); - ProximityType getMatchedProximityId(const int *currentChars, const unsigned short c, - const int skipPos, const int excessivePos, const int transposedPos); // Process a node by considering proximity, missing and excessive character bool processCurrentNode(const int initialPos, const int initialDepth, const int maxDepth, const bool initialTraverseAllNodes, const int snr, int inputIndex, @@ -127,10 +119,6 @@ private: const int transposedPos, int *nextLetters, const int nextLettersSize, int *newCount, int *newChildPosition, bool *newTraverseAllNodes, int *newSnr, int*newInputIndex, int *newDiffs, int *nextSiblingPosition, int *nextOutputIndex); - bool existsAdjacentProximityChars(const int inputIndex, const int inputLength) const; - inline const int* getInputCharsAt(const int index) const { - return mInputCodes + (index * MAX_PROXIMITY_CHARS); - } int getMostFrequentWordLike(const int startInputIndex, const int inputLength, unsigned short *word); #ifndef NEW_DICTIONARY_FORMAT @@ -174,7 +162,7 @@ private: int *mFrequencies; unsigned short *mOutputChars; - const int *mInputCodes; + const ProximityInfo *mProximityInfo; int mInputLength; // MAX_WORD_LENGTH_INTERNAL must be bigger than MAX_WORD_LENGTH unsigned short mWord[MAX_WORD_LENGTH_INTERNAL]; @@ -189,7 +177,6 @@ private: int mStackOutputIndex[MAX_WORD_LENGTH_INTERNAL]; int mNextLettersFrequency[NEXT_LETTERS_SIZE]; }; - } // namespace latinime #endif // LATINIME_UNIGRAM_DICTIONARY_H |