Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//////////////////////////////////////////////////
// Copyright (C) 1997 - 1998, Microsoft Corporation. All Rights Reserved.
//
// File : DICTTYPE.CPP
// Project : project SIK
//////////////////////////////////////////////////
#include <io.h>
#include <stdlib.h>
#include <string.h>
#include "basecore.hpp"
#include "stemkor.h"
////////////////////////////////////////////////////////////////////////
int LenDict::FindWord(char *stem, int &ulspos, int startindex) { for(int i = startindex; i < WORDNUM; i++) // Check the length of stem
{ if(__IsDefStem(ulspos, dict[(i+1)*BUCKETSIZE-1]) == 1) { if(strcmp(stem+(ulspos-dict[(i+1)*BUCKETSIZE-1]), dict+i*BUCKETSIZE) == 0) { // remove the rear of stem in the LenDict
__DelStemN(stem, ulspos, dict[(i+1)*BUCKETSIZE-1]+1); return i; } } } return -1; }
// Restore the part of stem which is removed in FindWord
void LenDict::RestWord(char *stem, int &ulspos, int restindex) { for (int i=0; ;i++) { if (dict[restindex*BUCKETSIZE+i] == 0) { break; } ulspos++; stem[ulspos] = dict[restindex*BUCKETSIZE+i]; } stem[ulspos+1] = NULLCHAR; }
|