{
int i, j;
for (i = 0; i < unicharset->
size(); ++i) {
if (use_ambigs_for_adaption) {
}
}
if (debug_level)
tprintf(
"Reading ambiguities\n");
int TestAmbigPartSize;
int ReplacementAmbigPartSize;
char ReplacementString[kMaxAmbigStringSize];
int line_num = 0;
int version = 0;
strlen(buffer) > 0);
if (*buffer == 'v') {
version =
static_cast<int>(strtol(buffer+1,
NULL, 10));
++line_num;
} else {
rewind(AmbigFile);
}
while ((end_offset < 0 || ftell(AmbigFile) < end_offset) &&
fgets(buffer, kBufferSize, AmbigFile) !=
NULL) {
if (debug_level > 2)
tprintf(
"read line %s\n", buffer);
++line_num;
if (!ParseAmbiguityLine(line_num, version, debug_level, *unicharset,
buffer, &TestAmbigPartSize, TestUnicharIds,
&ReplacementAmbigPartSize,
ReplacementString, &type)) continue;
AmbigSpec *ambig_spec = new AmbigSpec();
InsertIntoTable((type ==
REPLACE_AMBIG) ? replace_ambigs_ : dang_ambigs_,
TestAmbigPartSize, TestUnicharIds,
ReplacementAmbigPartSize, ReplacementString, type,
ambig_spec, unicharset);
if (TestAmbigPartSize == 1 &&
if (one_to_one_definite_ambigs_[TestUnicharIds[0]] ==
NULL) {
}
one_to_one_definite_ambigs_[TestUnicharIds[0]]->
push_back(
ambig_spec->correct_ngram_id);
}
if (use_ambigs_for_adaption) {
for (i = 0; i < TestAmbigPartSize; ++i) {
if (ambigs_for_adaption_[TestUnicharIds[i]] ==
NULL) {
}
adaption_ambigs_entry = ambigs_for_adaption_[TestUnicharIds[i]];
const char *tmp_ptr = ReplacementString;
const char *tmp_ptr_end = ReplacementString + strlen(ReplacementString);
int step = unicharset->
step(tmp_ptr);
while (step > 0) {
for (j = 0; j < adaption_ambigs_entry->size() &&
(*adaption_ambigs_entry)[j] > id_to_insert; ++j);
if (j < adaption_ambigs_entry->size()) {
if ((*adaption_ambigs_entry)[j] != id_to_insert) {
adaption_ambigs_entry->insert(id_to_insert, j);
}
} else {
adaption_ambigs_entry->push_back(id_to_insert);
}
tmp_ptr += step;
step = tmp_ptr < tmp_ptr_end ? unicharset->
step(tmp_ptr) : 0;
}
}
}
}
delete[] buffer;
if (use_ambigs_for_adaption) {
for (i = 0; i < ambigs_for_adaption_.
size(); ++i) {
adaption_ambigs_entry = ambigs_for_adaption_[i];
if (adaption_ambigs_entry ==
NULL)
continue;
for (j = 0; j < adaption_ambigs_entry->size(); ++j) {
UNICHAR_ID ambig_id = (*adaption_ambigs_entry)[j];
if (reverse_ambigs_for_adaption_[ambig_id] ==
NULL) {
}
reverse_ambigs_for_adaption_[ambig_id]->
push_back(i);
}
}
}
if (debug_level > 1) {
for (int tbl = 0; tbl < 2; ++tbl) {
(tbl == 0) ? replace_ambigs_ : dang_ambigs_;
for (i = 0; i < print_table.size(); ++i) {
AmbigSpec_LIST *lst = print_table[i];
if (lst ==
NULL)
continue;
if (!lst->empty()) {
tprintf(
"%s Ambiguities for %s:\n",
(tbl == 0) ? "Replaceable" : "Dangerous",
}
AmbigSpec_IT lst_it(lst);
for (lst_it.mark_cycle_pt(); !lst_it.cycled_list(); lst_it.forward()) {
AmbigSpec *ambig_spec = lst_it.data();
}
}
}
if (use_ambigs_for_adaption) {
for (int vec_id = 0; vec_id < 2; ++vec_id) {
ambigs_for_adaption_ : reverse_ambigs_for_adaption_;
for (i = 0; i < vec.
size(); ++i) {
adaption_ambigs_entry = vec[i];
if (adaption_ambigs_entry !=
NULL) {
tprintf(
"%sAmbigs for adaption for %s:\n",
(vec_id == 0) ? "" : "Reverse ",
for (j = 0; j < adaption_ambigs_entry->size(); ++j) {
(*adaption_ambigs_entry)[j]).
string());
}
}
}
}
}
}
}