Lines Matching refs:sa
246 sa_subobj_t * sa; in saInitialize() local
259 sa = (sa_subobj_t *) this->subObj; in saInitialize()
263 sa->procState = SA_STEPSTATE_COLLECT; in saInitialize()
265 sa->inspaceok = TRUE; in saInitialize()
266 sa->needsmoreitems = TRUE; in saInitialize()
268 sa->headxBottom = 0; in saInitialize()
269 sa->headxLen = 0; in saInitialize()
270 sa->cbuf1BufSize = PICOSA_MAXSIZE_CBUF; in saInitialize()
271 sa->cbuf2BufSize = PICOSA_MAXSIZE_CBUF; in saInitialize()
272 sa->cbuf1Len = 0; in saInitialize()
273 sa->cbuf2Len = 0; in saInitialize()
277 sa->headx[i].head.type = 0; in saInitialize()
278 sa->headx[i].head.info1 = PICODATA_ITEMINFO1_NA; in saInitialize()
279 sa->headx[i].head.info2 = PICODATA_ITEMINFO2_NA; in saInitialize()
280 sa->headx[i].head.len = 0; in saInitialize()
281 sa->headx[i].cind = 0; in saInitialize()
284 sa->cbuf1[i] = 0; in saInitialize()
285 sa->cbuf2[i] = 0; in saInitialize()
290 sa->phonesTransduced = FALSE; in saInitialize()
291 sa->phonBuf = sa->phonBufA; in saInitialize()
292 sa->phonBufOut = sa->phonBufB; in saInitialize()
293 sa->phonReadPos = 0; in saInitialize()
294 sa->phonWritePos = 0; in saInitialize()
295 sa->nextReadPos = 0; in saInitialize()
303 sa->numFsts = 0; in saInitialize()
307 sa->fst[sa->numFsts++] = fst; in saInitialize()
310 sa->curFst = 0; in saInitialize()
311 PICODBG_DEBUG(("got %i fsts", sa->numFsts)); in saInitialize()
313 sa->fixedIds = picoktab_getFixedIds(this->voice->kbArray[PICOKNOW_KBID_FIXED_IDS]); in saInitialize()
316 sa->tabgraphs = in saInitialize()
318 if (sa->tabgraphs == NULL) { in saInitialize()
325 sa->tabphones = in saInitialize()
327 if (sa->tabphones == NULL) { in saInitialize()
337 if (picoktab_hasVowelProp(sa->tabphones, itmp)) { in saInitialize()
340 if (picoktab_hasDiphthProp(sa->tabphones, itmp)) { in saInitialize()
343 if (picoktab_hasGlottProp(sa->tabphones, itmp)) { in saInitialize()
346 if (picoktab_hasNonsyllvowelProp(sa->tabphones, itmp)) { in saInitialize()
349 if (picoktab_hasSyllconsProp(sa->tabphones, itmp)) { in saInitialize()
352 if (picoktab_isPrimstress(sa->tabphones, itmp)) { in saInitialize()
355 if (picoktab_isSecstress(sa->tabphones, itmp)) { in saInitialize()
358 if (picoktab_isSyllbound(sa->tabphones, itmp)) { in saInitialize()
361 if (picoktab_isPause(sa->tabphones, itmp)) { in saInitialize()
367 picoktab_getPrimstressID(sa->tabphones))); in saInitialize()
369 picoktab_getSecstressID(sa->tabphones))); in saInitialize()
371 picoktab_getSyllboundID(sa->tabphones))); in saInitialize()
373 picoktab_getPauseID(sa->tabphones))); in saInitialize()
378 sa->tabpos = in saInitialize()
380 if (sa->tabpos == NULL) { in saInitialize()
387 sa->dtposd = picokdt_getDtPosD(this->voice->kbArray[PICOKNOW_KBID_DT_POSD]); in saInitialize()
388 if (sa->dtposd == NULL) { in saInitialize()
395 sa->dtg2p = picokdt_getDtG2P(this->voice->kbArray[PICOKNOW_KBID_DT_G2P]); in saInitialize()
396 if (sa->dtg2p == NULL) { in saInitialize()
403 sa->lex = picoklex_getLex(this->voice->kbArray[PICOKNOW_KBID_LEX_MAIN]); in saInitialize()
404 if (sa->lex == NULL) { in saInitialize()
411 sa->numUlex = 0; in saInitialize()
415 sa->ulex[sa->numUlex++] = ulex; in saInitialize()
418 PICODBG_DEBUG(("got %i user lexica", sa->numUlex)); in saInitialize()
433 sa_subobj_t * sa; in saSubObjDeallocate() local
435 sa = (sa_subobj_t *) this->subObj; in saSubObjDeallocate()
436 picotrns_deallocate_alt_desc_buf(mm,&sa->altDescBuf); in saSubObjDeallocate()
449 sa_subobj_t * sa; in picosa_newSentAnaUnit() local
468 sa = (sa_subobj_t *) this->subObj; in picosa_newSentAnaUnit()
470 sa->altDescBuf = picotrns_allocate_alt_desc_buf(mm, SA_MAX_ALTDESC_SIZE, &sa->maxAltDescLen); in picosa_newSentAnaUnit()
471 if (NULL == sa->altDescBuf) { in picosa_newSentAnaUnit()
472 picotrns_deallocate_alt_desc_buf(mm,&sa->altDescBuf); in picosa_newSentAnaUnit()
473 picoos_deallocate(mm, (void *)&sa); in picosa_newSentAnaUnit()
490 register sa_subobj_t *sa, in saPosDItemSeqGetPosRight() argument
499 if ((sa->headx[i].head.type == PICODATA_ITEM_WORDGRAPH) || in saPosDItemSeqGetPosRight()
500 (sa->headx[i].head.type == PICODATA_ITEM_WORDINDEX) || in saPosDItemSeqGetPosRight()
501 (sa->headx[i].head.type == PICODATA_ITEM_WORDPHON) ) { in saPosDItemSeqGetPosRight()
502 val = sa->headx[i].head.info1; in saPosDItemSeqGetPosRight()
512 register sa_subobj_t *sa) { in saDisambPos() argument
532 while ((first < sa->headxLen) && in saDisambPos()
533 (sa->headx[first].head.type != PICODATA_ITEM_WORDGRAPH) && in saDisambPos()
534 (sa->headx[first].head.type != PICODATA_ITEM_WORDINDEX) && in saDisambPos()
535 (sa->headx[first].head.type != PICODATA_ITEM_WORDPHON)) { in saDisambPos()
538 if (first >= sa->headxLen) { in saDisambPos()
550 valbuf[half_nratt_posd+1] = sa->headx[first].head.info1; in saDisambPos()
553 valbuf[i] = saPosDItemSeqGetPosRight(this, sa, lastprev3, sa->headxLen, &lastprev3); in saDisambPos()
556 PICODBG_TRACE(("headxLen: %d", sa->headxLen)); in saDisambPos()
559 for (ci = first; ci < sa->headxLen; ci++) { in saDisambPos()
562 PICODBG_TRACE(("iter: %d, type: %c", ci, sa->headx[ci].head.type)); in saDisambPos()
565 if ((sa->headx[ci].head.type != PICODATA_ITEM_WORDGRAPH) && in saDisambPos()
566 (sa->headx[ci].head.type != PICODATA_ITEM_WORDINDEX) && in saDisambPos()
567 (sa->headx[ci].head.type != PICODATA_ITEM_WORDPHON)) { in saDisambPos()
571 PICODBG_TRACE(("iter: %d, curPOS: %d", ci, sa->headx[ci].head.info1)); in saDisambPos()
586 …valbuf[PICOKDT_NRATT_POSD-1] = saPosDItemSeqGetPosRight(this, sa, lastprev3, sa->headxLen, &lastpr… in saDisambPos()
589 if (sa->headx[ci].head.info1 != valbuf[half_nratt_posd]) { in saDisambPos()
593 valbuf[half_nratt_posd] = sa->headx[ci].head.info1; in saDisambPos()
599 if (picoktab_isUniquePos(sa->tabpos, (picoos_uint8) curPOS)) { in saDisambPos()
603 if (!picokdt_dtPosDreverseMapOutFixed(sa->dtposd, curPOS, in saDisambPos()
613 PICODBG_DEBUG(("keeping: %d", sa->headx[ci].head.info1)); in saDisambPos()
624 if (!picokdt_dtPosDconstructInVec(sa->dtposd, valbuf)) { in saDisambPos()
632 if (okay && (!picokdt_dtPosDclassify(sa->dtposd, &prevout))) { in saDisambPos()
640 if (okay && (!picokdt_dtPosDdecomposeOutClass(sa->dtposd, &dtres))) { in saDisambPos()
659 sa->headx[ci].head.info1 = (picoos_uint8)dtres.class; in saDisambPos()
660 if (sa->headx[ci].head.type == PICODATA_ITEM_WORDINDEX) { in saDisambPos()
666 for (i = 0; i < sa->headx[ci].head.len; i += PICOKLEX_POSIND_SIZE) { in saDisambPos()
668 if (picoktab_isPartOfPosGroup(sa->tabpos, in saDisambPos()
670 sa->cbuf1[sa->headx[ci].cind + i])) { in saDisambPos()
673 sa->headx[ci].cind += i; in saDisambPos()
685 sa->headx[ci].head.len = PICOKLEX_POSIND_SIZE; in saDisambPos()
699 register sa_subobj_t *sa, in saCopyItemContent1to2() argument
705 cind1 = sa->headx[ind].cind; in saCopyItemContent1to2()
706 sa->headx[ind].cind = sa->cbuf2Len; in saCopyItemContent1to2()
709 if (sa->headx[ind].head.len > (sa->cbuf2BufSize - sa->cbuf2Len)) { in saCopyItemContent1to2()
710 sa->headx[ind].head.len = sa->cbuf2BufSize - sa->cbuf2Len; in saCopyItemContent1to2()
714 if (sa->headx[ind].head.len == 0) { in saCopyItemContent1to2()
715 sa->headx[ind].cind = 0; in saCopyItemContent1to2()
719 for (i = 0; i < sa->headx[ind].head.len; i++) { in saCopyItemContent1to2()
720 sa->cbuf2[sa->cbuf2Len] = sa->cbuf1[cind1 + i]; in saCopyItemContent1to2()
721 sa->cbuf2Len++; in saCopyItemContent1to2()
725 sa->headx[ind].head.type, sa->headx[ind].head.len)); in saCopyItemContent1to2()
734 register sa_subobj_t *sa, in saLexIndLookup() argument
742 if (picoklex_lexIndLookup(lex, &(sa->cbuf1[sa->headx[ind].cind + 1]), in saLexIndLookup()
744 sa->headx[ind].cind = sa->cbuf2Len; in saLexIndLookup()
747 if (plen > (sa->cbuf2BufSize - sa->cbuf2Len)) { in saLexIndLookup()
748 plen = sa->cbuf2BufSize - sa->cbuf2Len; in saLexIndLookup()
753 sa->headx[ind].cind = 0; in saLexIndLookup()
758 sa->headx[ind].head.type = PICODATA_ITEM_WORDPHON; in saLexIndLookup()
759 sa->headx[ind].head.len = plen; in saLexIndLookup()
762 sa->cbuf2[sa->cbuf2Len] = phones[i]; in saLexIndLookup()
763 sa->cbuf2Len++; in saLexIndLookup()
792 register sa_subobj_t *sa, in saGetNrVowel() argument
808 !picoktab_hasVowellikeProp(sa->tabgraphs, cstr, PICOBASE_UTF8_MAXLEN)) { in saGetNrVowel()
816 if (picoktab_hasVowellikeProp(sa->tabgraphs, cstr, in saGetNrVowel()
830 register sa_subobj_t *sa, in saDoG2P() argument
890 if (!saGetNrVowel(this, sa, graph, graphlen, nCount-1, &nrvow, in saDoG2P()
898 if (!picokdt_dtG2PconstructInVec(sa->dtg2p, in saDoG2P()
918 if (okay && (!picokdt_dtG2Pclassify(sa->dtg2p, &nOutVal))) { in saDoG2P()
927 if (okay && (!picokdt_dtG2PdecomposeOutClass(sa->dtg2p, &dtresv))) { in saDoG2P()
952 sa->tmpbuf[phonesind--] = (picoos_uint8)dtresv.classvec[i]; in saDoG2P()
954 if (picoktab_isPrimstress(sa->tabphones, in saDoG2P()
997 phones[i] = sa->tmpbuf[phonesind]; in saDoG2P()
1006 register sa_subobj_t *sa, in saGraphemeToPhoneme() argument
1012 if (saDoG2P(this, sa, &(sa->cbuf1[sa->headx[ind].cind]), in saGraphemeToPhoneme()
1013 sa->headx[ind].head.len, sa->headx[ind].head.info1, in saGraphemeToPhoneme()
1014 &(sa->cbuf2[sa->cbuf2Len]), (sa->cbuf2BufSize - sa->cbuf2Len), in saGraphemeToPhoneme()
1025 sa->headx[ind].head.type = PICODATA_ITEM_WORDPHON; in saGraphemeToPhoneme()
1026 sa->headx[ind].head.len = (picoos_uint8)plen; in saGraphemeToPhoneme()
1027 sa->headx[ind].cind = sa->cbuf2Len; in saGraphemeToPhoneme()
1028 sa->cbuf2Len += plen; in saGraphemeToPhoneme()
1044 static pico_status_t saAddPhoneme(register sa_subobj_t *sa, picoos_uint16 pos, picoos_uint16 sym) { in saAddPhoneme() argument
1052 if (PICOTRNS_MAX_NUM_POSSYM <= sa->phonWritePos) { in saAddPhoneme()
1057 sa->phonBuf[sa->phonWritePos].pos = pos; in saAddPhoneme()
1058 sa->phonBuf[sa->phonWritePos].sym = sym; in saAddPhoneme()
1059 sa->phonWritePos++; in saAddPhoneme()
1079 register sa_subobj_t *sa, picoos_uint16 pos, in saExtractPhonemes() argument
1096 sa->phonWritePos = 0; in saExtractPhonemes()
1098 rv = saAddPhoneme(sa, PICOTRNS_POS_IGNORE, in saExtractPhonemes()
1099 (PICOKFST_PLANE_INTERN << 8) + sa->fixedIds->phonStartId); in saExtractPhonemes()
1104 rv = saAddPhoneme(sa, pos+PICODATA_ITEM_HEADSIZE+i, fstSymbol); in saExtractPhonemes()
1106 rv = saAddPhoneme(sa, PICOTRNS_POS_IGNORE, in saExtractPhonemes()
1107 (PICOKFST_PLANE_INTERN << 8) + sa->fixedIds->phonTermId); in saExtractPhonemes()
1108 sa->nextReadPos = pos + PICODATA_ITEM_HEADSIZE + head->len; in saExtractPhonemes()
1126 static pico_status_t getNextPosSym(sa_subobj_t * sa, picoos_int16 * pos, picoos_int16 * sym, in getNextPosSym() argument
1129 …while ((sa->phonReadPos < sa->phonWritePos) && (PICOTRNS_POS_IGNORE == sa->phonBuf[sa->phonReadPos… in getNextPosSym()
1130 … PICODBG_DEBUG(("ignoring phone at sa->phonBuf[%i] because it has pos==IGNORE",sa->phonReadPos)); in getNextPosSym()
1131 sa->phonReadPos++; in getNextPosSym()
1133 if ((sa->phonReadPos < sa->phonWritePos)) { in getNextPosSym()
1134 *pos = sa->phonBuf[sa->phonReadPos].pos; in getNextPosSym()
1136 *sym = sa->phonBuf[sa->phonReadPos++].sym; in getNextPosSym()
1191 register sa_subobj_t *sa; in saStep() local
1203 sa = (sa_subobj_t *) this->subObj; in saStep()
1208 sa->procState, sa->headxLen, sa->cbuf1Len, in saStep()
1209 sa->cbuf2Len)); in saStep()
1211 switch (sa->procState) { in saStep()
1219 while (sa->inspaceok && sa->needsmoreitems in saStep()
1221 (rv = picodata_cbGetItem(this->cbIn, sa->tmpbuf, in saStep()
1223 rvP = picodata_get_itemparts(sa->tmpbuf, in saStep()
1225 &(sa->headx[sa->headxLen].head), in saStep()
1226 &(sa->cbuf1[sa->cbuf1Len]), in saStep()
1227 sa->cbuf1BufSize-sa->cbuf1Len, in saStep()
1238 if ((sa->headx[sa->headxLen].head.type == in saStep()
1240 (sa->headx[sa->headxLen].head.info1 == in saStep()
1242 sa->headx[sa->headxLen].head.type = in saStep()
1244 sa->headx[sa->headxLen].head.info1 = in saStep()
1246 sa->headx[sa->headxLen].head.info2 = in saStep()
1248 sa->headx[sa->headxLen].head.len = 0; in saStep()
1253 sa->headx[sa->headxLen].cind = sa->cbuf1Len; in saStep()
1255 if ((sa->headx[sa->headxLen].head.type == in saStep()
1257 (sa->headx[sa->headxLen].head.info1 == in saStep()
1259 (sa->headx[sa->headxLen].head.info2 == in saStep()
1262 picoos_uint8 wordsep = picoktab_getWordboundID(sa->tabphones); in saStep()
1264 sa->headx[sa->headxLen].head.type = PICODATA_ITEM_WORDPHON; in saStep()
1265 sa->headx[sa->headxLen].head.info1 = PICODATA_POS_XX; in saStep()
1266 sa->headx[sa->headxLen].head.info2 = PICODATA_ITEMINFO2_NA; in saStep()
1269 …while ((i < sa->headx[sa->headxLen].head.len) && (wordsep != sa->cbuf1[sa->headx[sa->headxLen].cin… in saStep()
1270 … PICODBG_INFO(("accepting phoneme %i",sa->cbuf1[sa->headx[sa->headxLen].cind+i])); in saStep()
1274 if (i < sa->headx[sa->headxLen].head.len) { in saStep()
1276 sa->headx[sa->headxLen].head.len = i; in saStep()
1281 if (sa->headx[sa->headxLen].head.type == in saStep()
1283 sa->needsmoreitems = FALSE; in saStep()
1287 if ((sa->headxLen >= (PICOSA_MAXNR_HEADX - 2)) || in saStep()
1288 ((sa->cbuf1BufSize - sa->cbuf1Len) < in saStep()
1290 sa->inspaceok = FALSE; in saStep()
1294 sa->headx[sa->headxLen].cind = sa->cbuf1Len; in saStep()
1295 sa->cbuf1Len += clen; in saStep()
1297 sa->headx[sa->headxLen].cind = 0; in saStep()
1299 sa->headxLen++; in saStep()
1302 if (!sa->needsmoreitems) { in saStep()
1304 sa->procState = SA_STEPSTATE_PROCESS_POSD; in saStep()
1306 } else if (!sa->inspaceok) { in saStep()
1310 sa->headx[sa->headxLen].head.type = PICODATA_ITEM_PUNC; in saStep()
1311 sa->headx[sa->headxLen].head.info1 = in saStep()
1313 sa->headx[sa->headxLen].head.info2 = in saStep()
1315 sa->headx[sa->headxLen].head.len = 0; in saStep()
1316 sa->needsmoreitems = FALSE; /* not really needed for now */ in saStep()
1317 sa->headxLen++; in saStep()
1322 sa->procState = SA_STEPSTATE_PROCESS_POSD; in saStep()
1349 if (sa->headxLen > 0) { in saStep()
1352 if (PICO_OK != saDisambPos(this, sa)) { in saStep()
1357 sa->procState = SA_STEPSTATE_PROCESS_WPHO; in saStep()
1359 } else if (sa->headxLen == 0) { /* no items in inBuf */ in saStep()
1361 sa->procState = SA_STEPSTATE_COLLECT; in saStep()
1368 for (i = 0; i < sa->headxLen; i++) { in saStep()
1369 ittype = sa->headx[i].head.type; in saStep()
1373 if ((32 <= sa->headx[i].head.info1) && in saStep()
1374 (sa->headx[i].head.info1 < 127) && in saStep()
1377 PICODBG_INFO_MSG(("'%c',",sa->headx[i].head.info1)); in saStep()
1379 PICODBG_INFO_MSG(("%3d,", sa->headx[i].head.info1)); in saStep()
1381 if ((32 <= sa->headx[i].head.info2) && in saStep()
1382 (sa->headx[i].head.info2 < 127)) { in saStep()
1383 PICODBG_INFO_MSG(("'%c',",sa->headx[i].head.info2)); in saStep()
1385 PICODBG_INFO_MSG(("%3d,", sa->headx[i].head.info2)); in saStep()
1387 PICODBG_INFO_MSG(("%3d)", sa->headx[i].head.len)); in saStep()
1389 for (j = 0; j < sa->headx[i].head.len; j++) { in saStep()
1393 sa->cbuf1[sa->headx[i].cind+j])); in saStep()
1396 sa->cbuf1[sa->headx[i].cind+j])); in saStep()
1413 if (sa->headxLen > 0) { in saStep()
1418 if (sa->cbuf2Len > 0) { in saStep()
1428 for (i = 0; i < sa->headxLen; i++) { in saStep()
1429 switch (sa->headx[i].head.type) { in saStep()
1431 if (PICO_OK != saGraphemeToPhoneme(this, sa, in saStep()
1441 if (0 == sa->headx[i].head.info2) { in saStep()
1442 lex = sa->lex; in saStep()
1444 lex = sa->ulex[sa->headx[i].head.info2-1]; in saStep()
1446 if (PICO_OK != saLexIndLookup(this, sa, lex, i)) { in saStep()
1457 if (PICO_OK != saCopyItemContent1to2(this, sa, in saStep()
1469 sa->cbuf1Len = 0; in saStep()
1470 sa->procState = SA_STEPSTATE_PROCESS_TRNS_PARSE; in saStep()
1472 } else if (sa->headxLen == 0) { /* no items in inBuf */ in saStep()
1474 sa->procState = SA_STEPSTATE_COLLECT; in saStep()
1481 for (i = 0; i < sa->headxLen; i++) { in saStep()
1482 ittype = sa->headx[i].head.type; in saStep()
1486 if ((32 <= sa->headx[i].head.info1) && in saStep()
1487 (sa->headx[i].head.info1 < 127) && in saStep()
1489 PICODBG_INFO_MSG(("'%c',",sa->headx[i].head.info1)); in saStep()
1491 PICODBG_INFO_MSG(("%3d,", sa->headx[i].head.info1)); in saStep()
1493 if ((32 <= sa->headx[i].head.info2) && in saStep()
1494 (sa->headx[i].head.info2 < 127)) { in saStep()
1495 PICODBG_INFO_MSG(("'%c',",sa->headx[i].head.info2)); in saStep()
1497 PICODBG_INFO_MSG(("%3d,", sa->headx[i].head.info2)); in saStep()
1499 PICODBG_INFO_MSG(("%3d)", sa->headx[i].head.len)); in saStep()
1501 for (j = 0; j < sa->headx[i].head.len; j++) { in saStep()
1504 sa->cbuf2[sa->headx[i].cind+j])); in saStep()
1507 sa->cbuf2[sa->headx[i].cind+j])); in saStep()
1523 sa->headxBottom, sa->headxLen)); in saStep()
1526 if (0 == sa->headxLen) { in saStep()
1528 sa->headxBottom = 0; in saStep()
1529 sa->cbuf2Len = 0; in saStep()
1531 sa->inspaceok = TRUE; in saStep()
1532 sa->needsmoreitems = TRUE; in saStep()
1534 sa->procState = SA_STEPSTATE_COLLECT; in saStep()
1538 sa->procState = SA_STEPSTATE_FEED; in saStep()
1541 &(sa->headx[sa->headxBottom].head), in saStep()
1542 &(sa->cbuf2[sa->headx[sa->headxBottom].cind]), in saStep()
1543 sa->headx[sa->headxBottom].head.len, sa->tmpbuf, in saStep()
1546 if (PICODATA_ITEM_WORDPHON == sa->headx[sa->headxBottom].head.type) { in saStep()
1548 rv = saExtractPhonemes(this, sa, 0, &(sa->headx[sa->headxBottom].head), in saStep()
1549 &(sa->cbuf2[sa->headx[sa->headxBottom].cind])); in saStep()
1552 sa->procState = SA_STEPSTATE_PROCESS_TRNS_FST; in saStep()
1559 if (SA_STEPSTATE_FEED == sa->procState) { in saStep()
1562 sa->tmpbuf, PICOSA_MAXITEMSIZE); in saStep()
1567 sa->headxBottom++; in saStep()
1568 sa->headxLen--; in saStep()
1581 if (0 == sa->numFsts) { in saStep()
1582 PICODBG_DEBUG(("doing trivial sylabification with %i phones", sa->phonWritePos)); in saStep()
1587 … PICOTRNS_PRINTSYMSEQ(this->voice->kbArray[PICOKNOW_KBID_DBG], sa->phonBuf, sa->phonWritePos); in saStep()
1592 picotrns_trivial_syllabify(sa->tabphones, sa->phonBuf, in saStep()
1593 sa->phonWritePos, sa->phonBufOut, in saStep()
1594 &sa->phonWritePos,PICOTRNS_MAX_NUM_POSSYM); in saStep()
1595 … PICODBG_DEBUG(("returned from trivial sylabification with %i phones", sa->phonWritePos)); in saStep()
1600 … PICOTRNS_PRINTSYMSEQ(this->voice->kbArray[PICOKNOW_KBID_DBG], sa->phonBufOut, sa->phonWritePos); in saStep()
1606 PICODBG_DEBUG(("doing epsilon elimination with %i phones", sa->phonWritePos)); in saStep()
1607 picotrns_eliminate_epsilons(sa->phonBufOut, in saStep()
1608 sa->phonWritePos, sa->phonBuf, in saStep()
1609 &sa->phonWritePos,PICOTRNS_MAX_NUM_POSSYM); in saStep()
1610 … PICODBG_DEBUG(("returning from epsilon elimination with %i phones", sa->phonWritePos)); in saStep()
1611 sa->phonReadPos = 0; in saStep()
1612 sa->phonesTransduced = 1; in saStep()
1613 sa->procState = SA_STEPSTATE_FEED; in saStep()
1619 if (sa->curFst >= sa->numFsts) { in saStep()
1621 sa->curFst = 0; in saStep()
1622 sa->phonReadPos = 0; in saStep()
1623 sa->phonesTransduced = 1; in saStep()
1624 sa->procState = SA_STEPSTATE_FEED; in saStep()
1636 … PICOTRNS_PRINTSYMSEQ(this->voice->kbArray[PICOKNOW_KBID_DBG], sa->phonBuf, sa->phonWritePos); in saStep()
1640 picotrns_transduce(sa->fst[sa->curFst], FALSE, in saStep()
1641 picotrns_printSolution, sa->phonBuf, sa->phonWritePos, sa->phonBufOut, in saStep()
1642 &sa->phonWritePos, in saStep()
1643 PICOTRNS_MAX_NUM_POSSYM, sa->altDescBuf, in saStep()
1644 sa->maxAltDescLen, &nrSteps); in saStep()
1649 … PICOTRNS_PRINTSYMSEQ(this->voice->kbArray[PICOKNOW_KBID_DBG], sa->phonBufOut, sa->phonWritePos); in saStep()
1662 picotrns_eliminate_epsilons(sa->phonBufOut, in saStep()
1663 sa->phonWritePos, sa->phonBuf, &sa->phonWritePos,PICOTRNS_MAX_NUM_POSSYM); in saStep()
1664 sa->phonesTransduced = 1; in saStep()
1666 sa->curFst++; in saStep()
1678 if (sa->phonesTransduced) { in saStep()
1683 while (SA_POSSYM_OK == (rv = getNextPosSym(sa,&pos,&sym,sa->nextReadPos))) { in saStep()
1687 sa->tmpbuf[phonWritePos++] = (picoos_uint8) sym; in saStep()
1690 … picodata_set_itemlen(sa->tmpbuf,PICODATA_ITEM_HEADSIZE,phonWritePos - PICODATA_ITEM_HEADSIZE); in saStep()
1695 sa->phonesTransduced = 0; in saStep()
1700 rvP = picodata_cbPutItem(this->cbOut, sa->tmpbuf, in saStep()
1720 sa->tmpbuf, PICOSA_MAXITEMSIZE); in saStep()
1722 sa->procState = SA_STEPSTATE_PROCESS_TRNS_PARSE; in saStep()