Changes to: pt, tt, ko. Phoneme definitions: added NOT operator, eg: IF NOT nextPh(isVowel) THEN git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@290 d46cf337-b52f-0410-862d-fd96e6ae7743master
| e) chen (_ C@n | e) chen (_ C@n | ||||
| ü) chen (_ C@n | ü) chen (_ C@n | ||||
| chs ks (_ | |||||
| chs ks | |||||
| chance SA~s@ | chance SA~s@ | ||||
| chara (kt k%ara | chara (kt k%ara | ||||
| _) ch (ic S | _) ch (ic S |
| z Z | z Z | ||||
| Dictionary de_dict 2012-06-27 | |||||
| Dictionary de_dict 2012-09-13 | |||||
| 3 @ @- a A A: aI aU | 3 @ @- a A A: aI aU | ||||
| A~ E E2 E: e: EI i I | A~ E E2 E: e: EI i I | ||||
| ts v x z | ts v x z | ||||
| Dictionary en_dict 2012-09-08 | |||||
| Dictionary en_dict 2012-09-14 | |||||
| 0 3 3: @ @- @2 @5 @L | 0 3 3: @ @- @2 @5 @L | ||||
| a a# A: A@ aa aI aI3 aI@ | a a# A: A@ aa aI aI3 aI@ | ||||
| ts; v w x z Z Z; | ts; v w x z Z Z; | ||||
| Dictionary pt_dict 2012-09-11 | |||||
| Dictionary pt_dict 2012-09-14 | |||||
| & &/ &U~ &~ @ @- a A | & &/ &U~ &~ @ @- a A | ||||
| aI aU e E eI EI eU EU | aI aU e E eI EI eU EU | ||||
| o o- ong ou u u@ ua uai | o o- ong ou u u@ ua uai | ||||
| uei uo y y& y@ yE yi yu | uei uo y y& y@ yE yi yu | ||||
| ; C f h j k kh l | |||||
| l# m n N p ph Q q | |||||
| Q" Q^ r R R2 R3 s s. | |||||
| S; t th ts ts. ts. tS; tS; | |||||
| tsh v w x X z. | |||||
| ; C f h j J^ k kh | |||||
| l l# m n N p ph Q | |||||
| q Q" Q^ r R R2 R3 s | |||||
| s. S; t th ts ts. ts. tS; | |||||
| tS; tsh v w x X z. | |||||
| Dictionary zhy_dict 2009-01-19 | Dictionary zhy_dict 2009-01-19 | ||||
| Z; | Z; | ||||
| Dictionary tt_dict 2012-09-11 | |||||
| Dictionary tt_dict 2012-09-14 | |||||
| a A A2 e e2 i I o | |||||
| u u2 V W y | |||||
| & a A e e2 e: i I | |||||
| o u u2 V W y | |||||
| : ? b d f g h j | : ? b d f g h j | ||||
| k l m n N p q r | k l m n N p q r | ||||
| Z Z; | Z Z; | ||||
| Dictionary ko_dict 2012-06-14 | |||||
| Dictionary ko_dict 2012-09-14 | |||||
| @ a e E i o u u- | @ a e E i o u u- | ||||
| * - ; b d dZ; g h | * - ; b d dZ; g h | ||||
| j k k- kh l m n p | |||||
| p- ph s t t- tS tS; w | |||||
| j k k- kh l m n N | |||||
| p p- ph q r s t t- | |||||
| tS tS; w |
| Keighli keIli | Keighli keIli | ||||
| Keanu kI'A:nu: | Keanu kI'A:nu: | ||||
| Kieran ki@r@n | Kieran ki@r@n | ||||
| Kris krIs | |||||
| Laurence l0r@ns | Laurence l0r@ns | ||||
| Lawrence l0r@ns | Lawrence l0r@ns | ||||
| Leann li:'an | Leann li:'an |
| // translation rules for Spanish | |||||
| // translation rules for Spanish | |||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // Conditional rules | // Conditional rules | ||||
| .group m | .group m | ||||
| m m | m m | ||||
| @) m (_ =m | |||||
| _) mn (em n | _) mn (em n | ||||
| _) mb (A mb | |||||
| _) mb (A mb | |||||
| .group n | .group n |
| $textmode | $textmode | ||||
| // Number forms: | |||||
| _0 ᅧᆼ | _0 ᅧᆼ | ||||
| _1 ᅵᆯ | _1 ᅵᆯ | ||||
| _2 ᅵ | _2 ᅵ | ||||
| _0M1 천 | _0M1 천 | ||||
| _1M1 천 | _1M1 천 | ||||
| $phonememode | |||||
| _0M2 m'an // 10^4 | |||||
| _1M2 m'an | |||||
| _0M3 tSh-@n||m'an // 10^7 | |||||
| _1M3 tSh-@n||m'an | |||||
| _0M4 '@q // 10^8 | |||||
| _1M4 '@q | |||||
| _0M5 tSh-@n||'@q // 10^11 | |||||
| _1M5 tSh-@n||'@q | |||||
| _0M6 tS;'o // 10^12 | |||||
| _1M6 tS;'o | |||||
| _0M7 tSh-@n||tS;'o | |||||
| _1M7 tSh-@n||tS;'o | |||||
| _0M8 gj'@nN | |||||
| _1M8 gj'@nN | |||||
| $textmode | |||||
| // Character names: | |||||
| ㄱ ㄱㅣㅇㅕㄱ | |||||
| ㄲ ㅆㅏㅇㄱㅣㅇㅕㄱ | |||||
| ㄴ ㄴㅣㅇㅡㄴ | |||||
| ㄷ ㄷㅣㄱㅡㄷ | |||||
| ㄸ ㅆㅏㅇㄷㅣㄱㅡㄷ | |||||
| ㄹ ㄹㅣㅇㅡㄹ | |||||
| ㅁ ㅁㅣㅇㅡㅁ | |||||
| ㅂ ㅂㅣㅇㅡㅂ | |||||
| ㅃ ㅆㅏㅇㅂㅣㅇㅡㅂ | |||||
| ㅅ ㅅㅣㅇㅗㅅ | |||||
| ㅆ ㅆㅏㅇㅅㅣㅇㅗㅅ | |||||
| ㅇ ㅇㅣㅇㅡㅇ | |||||
| ㅈ ㅈㅣㅇㅡㅈ | |||||
| ㅉ ㅆㅏㅇㅈㅣㅇㅡㅈ | |||||
| ㅊ ㅊㅣㅇㅡㅊ | |||||
| ㅋ ㅋㅣㅇㅡㅋ | |||||
| ㅌ ㅌㅣㅇㅡㅌ | |||||
| ㅍ ㅍㅣㅇㅡㅍ | |||||
| ㅎ ㅎㅣㅇㅡㅎ | |||||
| // Misc: | |||||
| // 사ᅵ시ᅩᆺ | // 사ᅵ시ᅩᆺ | ||||
| 고랫재 고랟째 | 고랫재 고랟째 | ||||
| 귓밥 귇빱 | 귓밥 귇빱 |
| // Order: ㄱㄲㅋ ㄷㄸㅌ ㅂㅃㅍ ㅅㅆㅈㅉㅊ ㄴㅁ ㄹ ㅎ | // Order: ㄱㄲㅋ ㄷㄸㅌ ㅂㅃㅍ ㅅㅆㅈㅉㅊ ㄴㅁ ㄹ ㅎ | ||||
| .group ᄀ // ㄱ | .group ᄀ // ㄱ | ||||
| ᄀ g | |||||
| _) ᄀ k | |||||
| ᄀ q | |||||
| _) ᄀ g | |||||
| L01) ᄀ k- | L01) ᄀ k- | ||||
| L03) ᄀ kh | L03) ᄀ kh | ||||
| .group ᄁ // ㄲ | .group ᄁ // ㄲ | ||||
| ᄁ k- | |||||
| ᄁ q- | |||||
| .group ᄏ // ㅋ | .group ᄏ // ㅋ | ||||
| ᄏ kh | ᄏ kh | ||||
| .group ᄃ // ㄷ | .group ᄃ // ㄷ | ||||
| ᄃ d | ᄃ d | ||||
| _) ᄃ t | |||||
| _) ᄃ d | |||||
| L01) ᄃ t- | L01) ᄃ t- | ||||
| L03) ᄃ th | L03) ᄃ th | ||||
| ᄑ ph | ᄑ ph | ||||
| .group ᄉ // ㅅ | .group ᄉ // ㅅ | ||||
| ᄉ s | |||||
| ᄉ |s | |||||
| L01) ᄉ s- | L01) ᄉ s- | ||||
| .group ᄊ // ㅆ | .group ᄊ // ㅆ | ||||
| L03) ᄌ tSh; | L03) ᄌ tSh; | ||||
| .group ᄍ // ㅉ | .group ᄍ // ㅉ | ||||
| ᄍ tS;- // TODO: phoneme | |||||
| ᄍ 'tS;- // TODO: phoneme | |||||
| .group ᄎ // ㅊ | .group ᄎ // ㅊ | ||||
| ᄎ tSh; // TODO: phoneme | |||||
| ᄎ tSh- // TODO: phoneme | |||||
| .group ᄂ // ㄴ | .group ᄂ // ㄴ | ||||
| ᄂ n | |||||
| ᄂ ;n | |||||
| .group ᄆ // ㅁ | .group ᄆ // ㅁ | ||||
| ᄆ m | |||||
| ᄆ ;m | |||||
| .group ᄅ // ㄹ | .group ᄅ // ㄹ | ||||
| ᄅ * // TODO: alveolar flap [ɾ] | ᄅ * // TODO: alveolar flap [ɾ] | ||||
| ᄒ h // TODO: [ɦ] | ᄒ h // TODO: [ɦ] | ||||
| _) ᄒ h | _) ᄒ h | ||||
| // Medials | |||||
| // Medials or vowels | |||||
| .group ᅡ // ㅏ | .group ᅡ // ㅏ | ||||
| ᅡ a | ᅡ a | ||||
| // Order: ㄱㄳㄲㅋ ㄷㅌ ㅂㅍ ㅅㅆㅈㅊ ㄴㅁ ㅇㅎ ㄹ | // Order: ㄱㄳㄲㅋ ㄷㅌ ㅂㅍ ㅅㅆㅈㅊ ㄴㅁ ㅇㅎ ㄹ | ||||
| .group ᆨ // ㄱ | .group ᆨ // ㄱ | ||||
| ᆨ k // TODO: final stops | |||||
| ᆨ q // It is actually q, as using k adds unnecessary sound. | |||||
| ᆨᄒ kh | ᆨᄒ kh | ||||
| .group ᆪ // ㄳ | .group ᆪ // ㄳ | ||||
| ᆿ (A kh | ᆿ (A kh | ||||
| .group ᆮ // ㄷ | .group ᆮ // ㄷ | ||||
| ᆮ t | |||||
| ᆮ d- // Actually a soft D. | |||||
| ᆮᄂ nn | ᆮᄂ nn | ||||
| ᆮᄆ mm | ᆮᄆ mm | ||||
| ᆮᄒ th | ᆮᄒ th | ||||
| ᆮ (L02 dZ; | ᆮ (L02 dZ; | ||||
| .group ᇀ // ㅌ | .group ᇀ // ㅌ | ||||
| ᇀ t | |||||
| ᇀ t- | |||||
| ᇀᄂ nn | ᇀᄂ nn | ||||
| ᇀᄆ mm | ᇀᄆ mm | ||||
| ᇀ (A th | ᇀ (A th | ||||
| ᇁ (A ph | ᇁ (A ph | ||||
| .group ᆺ // ㅅ | .group ᆺ // ㅅ | ||||
| ᆺ t | |||||
| ᆺ t- | |||||
| ᆺᄂ nn | ᆺᄂ nn | ||||
| ᆺᄆ mm | ᆺᄆ mm | ||||
| ᆺ (A s | ᆺ (A s | ||||
| ᆺᄒ s- | ᆺᄒ s- | ||||
| .group ᆻ // ㅆ | .group ᆻ // ㅆ | ||||
| ᆻ t | |||||
| ᆻ t- | |||||
| ᆻᄂ nn | ᆻᄂ nn | ||||
| ᆻᄆ mm | ᆻᄆ mm | ||||
| ᆻ (A s- | ᆻ (A s- | ||||
| ᆷ m | ᆷ m | ||||
| .group ᆼ // ㅇ | .group ᆼ // ㅇ | ||||
| ᆼ ng | |||||
| ᆼ nN | |||||
| .group ᇂ // ㅎ | .group ᇂ // ㅎ | ||||
| ᇂ t | |||||
| ᇂ t- | |||||
| ᇂ (A | ᇂ (A | ||||
| .group ᆯ // ㄹ | .group ᆯ // ㄹ | ||||
| ᆯ l | |||||
| ᆯ rr | |||||
| ᆯᄅ l | ᆯᄅ l | ||||
| ᆯ (A * | ᆯ (A * | ||||
| // $alt changes stressed [e] or [o] phoneme to open [E] or [O] | // $alt changes stressed [e] or [o] phoneme to open [E] or [O] | ||||
| // $alt2 changes stressed [E] or [O] phoneme to close [e] or [o] | // $alt2 changes stressed [E] or [O] phoneme to close [e] or [o] | ||||
| aborto $alt $verb | |||||
| acerto $alt2 $noun | acerto $alt2 $noun | ||||
| adereço $alt2 | adereço $alt2 | ||||
| adore $alt | adore $alt | ||||
| amores $alt2 | amores $alt2 | ||||
| anoiteça $alt2 | anoiteça $alt2 | ||||
| anoiteço $alt2 | anoiteço $alt2 | ||||
| apego $alt2 | |||||
| apreço $alt2 | apreço $alt2 | ||||
| aperto $alt2 $noun | aperto $alt2 $noun | ||||
| apoio $alt $verb | apoio $alt $verb | ||||
| aprendeste $alt2 | aprendeste $alt2 | ||||
| arremesso $alt2 $noun | |||||
| assembleia $alt | assembleia $alt | ||||
| atrozes $alt | atrozes $alt | ||||
| austera $alt | austera $alt | ||||
| bolo $alt2 | bolo $alt2 | ||||
| borboleta $alt2 | borboleta $alt2 | ||||
| bordo $alt | bordo $alt | ||||
| bromelha $alt | |||||
| cabeça $alt2 | cabeça $alt2 | ||||
| cacete $alt2 | cacete $alt2 | ||||
| cachorra $alt2 | cachorra $alt2 | ||||
| camiseta $alt2 | camiseta $alt2 | ||||
| cantora $alt2 | cantora $alt2 | ||||
| caractere $alt | |||||
| casebre $alt | casebre $alt | ||||
| catorze $alt2 | catorze $alt2 | ||||
| cefaleia $alt | cefaleia $alt | ||||
| cresce $alt | cresce $alt | ||||
| crescem $alt | crescem $alt | ||||
| der $alt | der $alt | ||||
| desapego $alt2 $noun | |||||
| desce $alt | desce $alt | ||||
| descem $alt | descem $alt | ||||
| descordo $alt | |||||
| descova $alt2 | descova $alt2 | ||||
| desespero $alt2 $noun | |||||
| desfecho $alt2 | desfecho $alt2 | ||||
| desprezo $alt $verb | desprezo $alt $verb | ||||
| deva $alt2 | deva $alt2 | ||||
| dobro $alt2 $noun | dobro $alt2 $noun | ||||
| doce $alt2 | doce $alt2 | ||||
| droga $alt | droga $alt | ||||
| emprego $alt2 $noun | |||||
| endereço $alt2 | endereço $alt2 | ||||
| enumerem $alt | enumerem $alt | ||||
| enredo $alt $verb | |||||
| enterro $alt2 $noun | |||||
| enxerto $alt2 $noun | enxerto $alt2 $noun | ||||
| epopeia $alt | epopeia $alt | ||||
| eritreia $alt | eritreia $alt | ||||
| esperma $alt | esperma $alt | ||||
| espeto $alt2 $noun | espeto $alt2 $noun | ||||
| espiroqueta $alt2 | espiroqueta $alt2 | ||||
| enterro $alt2 $noun | |||||
| esqueleto $alt2 | |||||
| estiverdes $alt | estiverdes $alt | ||||
| estiveres $alt | estiveres $alt | ||||
| estrofe $alt | estrofe $alt | ||||
| expeço $alt2 | expeço $alt2 | ||||
| farofa $alt | farofa $alt | ||||
| febre $alt | febre $alt | ||||
| fera $alt | |||||
| fere $alt | fere $alt | ||||
| ferem $alt | ferem $alt | ||||
| fezes $alt | fezes $alt | ||||
| fizerem $alt | fizerem $alt | ||||
| fizerdes $alt | fizerdes $alt | ||||
| fizeres $alt | fizeres $alt | ||||
| folga $alt | |||||
| fogos $alt | fogos $alt | ||||
| fores $alt2 | fores $alt2 | ||||
| forro $alt $verb | forro $alt $verb | ||||
| fossem $alt2 | fossem $alt2 | ||||
| foste $alt2 | foste $alt2 | ||||
| frevo $alt2 | frevo $alt2 | ||||
| galera $alt | |||||
| gameta $alt2 | gameta $alt2 | ||||
| geleia $alt | geleia $alt | ||||
| gelo $alt $verb | gelo $alt $verb | ||||
| poxa p'oS& | poxa p'oS& | ||||
| preta $alt2 | preta $alt2 | ||||
| preto $alt2 | preto $alt2 | ||||
| primavera $alt | |||||
| profere $alt | profere $alt | ||||
| proferem $alt | proferem $alt | ||||
| puder $alt | puder $alt | ||||
| puserdes $alt | puserdes $alt | ||||
| recomeço $alt2 $noun | |||||
| recordo $alt | recordo $alt | ||||
| recorto $alt | recorto $alt | ||||
| rede $alt2 | rede $alt2 | ||||
| sobe $alt | sobe $alt | ||||
| sobem $alt | sobem $alt | ||||
| soco $alt2 | soco $alt2 | ||||
| soco $alt $verb | |||||
| sofrem $alt | sofrem $alt | ||||
| sofre $alt | sofre $alt | ||||
| sofreste $alt2 | sofreste $alt2 | ||||
| sogra $alt | |||||
| sopre $alt | sopre $alt | ||||
| soprem $alt | soprem $alt | ||||
| sopro $alt $verb | |||||
| sorvete $alt2 | sorvete $alt2 | ||||
| sossego $alt2 $noun | sossego $alt2 $noun | ||||
| souber $alt | souber $alt | ||||
| sugerem $alt | sugerem $alt | ||||
| suor swOr | suor swOr | ||||
| tapete $alt2 | tapete $alt2 | ||||
| tempero $alt $verb | |||||
| teta $alt2 | teta $alt2 | ||||
| tiver $alt | tiver $alt | ||||
| tiveres $alt | tiveres $alt |
| // endings | // endings | ||||
| .L01 a am o | .L01 a am o | ||||
| .L02 a am e em o | |||||
| .L02 a am e em o ue uem | |||||
| .L03 a am | .L03 a am | ||||
| .group a | .group a | ||||
| _desapar) e (çL01_ e | _desapar) e (çL01_ e | ||||
| _esclar) e (çL01_ e | _esclar) e (çL01_ e | ||||
| _reapar) e (çL01_ e | _reapar) e (çL01_ e | ||||
| _sol) e (trL01_ E | |||||
| _acont) e (çL03_ e | |||||
| _envaid) e (çL01_ e | |||||
| _ofer) e (çL01_ e | |||||
| _enriqu) e (çL01_ e | |||||
| _descr) e (vL01_ e | |||||
| _enfraqu) e (çL01_ e | |||||
| //endsort | //endsort | ||||
| .group é | .group é | ||||
| ?1 f) o (rmulá u // eg: formulário, formulários. | ?1 f) o (rmulá u // eg: formulário, formulários. | ||||
| ?1 v) o (lt O | ?1 v) o (lt O | ||||
| //sort | |||||
| _m) o (lhL02_ O | _m) o (lhL02_ O | ||||
| _ref) o (gL02_ O | |||||
| c) o (rrL03_ o // escorra, incorra, corra, recorra | c) o (rrL03_ o // escorra, incorra, corra, recorra | ||||
| _m) o (rrL03_ o | _m) o (rrL03_ o | ||||
| _ap) oi (L03_ OI | _ap) oi (L03_ OI | ||||
| p) ostos (_ Ost=Us# // dispostos etc. | p) ostos (_ Ost=Us# // dispostos etc. | ||||
| //endsort | |||||
| .group ô | .group ô | ||||
| ô ''o | ô ''o |
| щ SS;A | щ SS;A | ||||
| ъ kAlVnl,Vqbilges'e | ъ kAlVnl,Vqbilges'e | ||||
| ы V: | ы V: | ||||
| ь neS;kal,ekbilges'e | |||||
| э e: | |||||
| ь neS;k&l,ekbilges'e | |||||
| э e|: | |||||
| ю ju | ю ju | ||||
| я jA | я jA | ||||
| _5X ill'e | _5X ill'e | ||||
| _6X Altm'VS | _6X Altm'VS | ||||
| _7X Z;itm'eS | _7X Z;itm'eS | ||||
| _8X siks'an | |||||
| _8X siks'&n | |||||
| _9X tuks'An | _9X tuks'An | ||||
| _0C j'Wz | _0C j'Wz | ||||
| _0M1 m'eN | _0M1 m'eN | ||||
| _0M4 billi'on | _0M4 billi'on | ||||
| _1M4 billi'on | _1M4 billi'on | ||||
| _dpt bWt,en | |||||
| _dpt _bWt,en |
| а A | а A | ||||
| .group ә | .group ә | ||||
| ә a | |||||
| ә & | |||||
| әе e: // 'әнкәен' | |||||
| .group б | .group б | ||||
| б b | б b | ||||
| в w // [v] in Russian words | в w // [v] in Russian words | ||||
| .group г | .group г | ||||
| г g // may be [Q] or [r"] ?? | |||||
| г g // changes to [Q] or [Q"] | |||||
| .group д | .group д | ||||
| д d | д d | ||||
| .group е | .group е | ||||
| _) е je2 // may be [je] [jV] | |||||
| _) е je2 // changes to [je] or [jV] | |||||
| е e | е e | ||||
| .group ё | .group ё | ||||
| .group и | .group и | ||||
| и i | и i | ||||
| A) и j | |||||
| .group й | .group й | ||||
| й j | й j | ||||
| .group н | .group н | ||||
| н n | н n | ||||
| н (к N | |||||
| // н (к N | |||||
| н (г N | н (г N | ||||
| н (х N | н (х N | ||||
| .group у | .group у | ||||
| у u // or w | у u // or w | ||||
| A) у w | |||||
| .group ү | .group ү | ||||
| ү y // or w | ү y // or w | ||||
| A) ү w | |||||
| .group ф | .group ф | ||||
| ф f | ф f | ||||
| э e | э e | ||||
| .group ю | .group ю | ||||
| ю ju2 // or jy | |||||
| ю ju2 // changes to ju or jy | |||||
| .group я | .group я | ||||
| я jA2 // or ja | |||||
| я ja // changes to jA or j& | |||||
| .group | .group | ||||
| $ dolAR | $ dolAR |
| 83 phoneme tables | 83 phoneme tables | ||||
| new total | new total | ||||
| base 107 107 | |||||
| consonants 10 116 | |||||
| base2 26 123 | |||||
| en 53 153 | |||||
| en-n 33 153 | |||||
| en-us 41 154 | |||||
| en-sc 40 155 | |||||
| en-rp 34 153 | |||||
| en-wm 31 153 | |||||
| en-wi 30 153 | |||||
| af 39 136 | |||||
| cy 29 132 | |||||
| de 41 139 | |||||
| eo 13 114 | |||||
| jbo 2 114 | |||||
| nci 3 123 | |||||
| fi 41 133 | |||||
| et 40 133 | |||||
| fr 64 144 | |||||
| fr-ca 11 144 | |||||
| hi 57 148 | |||||
| ta 23 152 | |||||
| kn 17 148 | |||||
| ml 21 151 | |||||
| hu 25 122 | |||||
| lt 44 137 | |||||
| lv 29 125 | |||||
| nl 35 128 | |||||
| pl 22 120 | |||||
| sk 28 135 | |||||
| cs 7 135 | |||||
| hr 25 140 | |||||
| mk 3 141 | |||||
| sr 14 142 | |||||
| ru 49 137 | |||||
| bg 14 123 | |||||
| it 19 127 | |||||
| la 21 124 | |||||
| es 15 123 | |||||
| es-la 1 123 | |||||
| ca 11 125 | |||||
| pt 29 138 | |||||
| pt-pt 20 138 | |||||
| ro 36 146 | |||||
| el 10 123 | |||||
| grc 12 127 | |||||
| sv 22 127 | |||||
| no 28 132 | |||||
| is 42 139 | |||||
| vi 41 139 | |||||
| zhy 41 136 | |||||
| zh 64 153 | |||||
| sw 9 108 | |||||
| tr 19 126 | |||||
| ku 18 127 | |||||
| id 15 125 | |||||
| sq 33 126 | |||||
| hy 23 117 | |||||
| da 27 120 | |||||
| ka 19 112 | |||||
| rw 15 130 | |||||
| ne 18 156 | |||||
| pa 15 150 | |||||
| prs 8 111 | |||||
| sl 10 135 | |||||
| gd 6 107 | |||||
| nso 12 111 | |||||
| ht 11 144 | |||||
| az 10 127 | |||||
| ak 8 109 | |||||
| am 15 112 | |||||
| wo 18 118 | |||||
| dv 14 148 | |||||
| te 16 148 | |||||
| si 24 154 | |||||
| tn 27 119 | |||||
| mt 32 127 | |||||
| bo 10 152 | |||||
| kk 20 117 | |||||
| fa 9 110 | |||||
| ga 21 125 | |||||
| tt 18 116 | |||||
| ko 15 114 | |||||
| base 109 109 | |||||
| consonants 10 118 | |||||
| base2 26 125 | |||||
| en 53 155 | |||||
| en-n 33 155 | |||||
| en-us 41 156 | |||||
| en-sc 40 157 | |||||
| en-rp 34 155 | |||||
| en-wm 31 155 | |||||
| en-wi 30 155 | |||||
| af 39 138 | |||||
| cy 29 134 | |||||
| de 41 141 | |||||
| eo 13 116 | |||||
| jbo 2 116 | |||||
| nci 3 125 | |||||
| fi 41 135 | |||||
| et 40 135 | |||||
| fr 64 146 | |||||
| fr-ca 11 146 | |||||
| hi 57 150 | |||||
| ta 23 154 | |||||
| kn 17 150 | |||||
| ml 21 153 | |||||
| hu 25 124 | |||||
| lt 44 139 | |||||
| lv 29 127 | |||||
| nl 35 130 | |||||
| pl 22 122 | |||||
| sk 28 137 | |||||
| cs 7 137 | |||||
| hr 25 142 | |||||
| mk 3 143 | |||||
| sr 14 144 | |||||
| ru 49 139 | |||||
| bg 14 124 | |||||
| it 19 129 | |||||
| la 21 126 | |||||
| es 15 125 | |||||
| es-la 1 125 | |||||
| ca 11 127 | |||||
| pt 29 140 | |||||
| pt-pt 20 140 | |||||
| ro 36 148 | |||||
| el 10 125 | |||||
| grc 12 129 | |||||
| sv 22 129 | |||||
| no 28 134 | |||||
| is 42 141 | |||||
| vi 41 141 | |||||
| zhy 41 138 | |||||
| zh 64 155 | |||||
| sw 9 110 | |||||
| tr 19 128 | |||||
| ku 18 129 | |||||
| id 15 127 | |||||
| sq 33 127 | |||||
| hy 23 119 | |||||
| da 27 122 | |||||
| ka 19 114 | |||||
| rw 15 132 | |||||
| ne 18 158 | |||||
| pa 15 152 | |||||
| prs 8 113 | |||||
| sl 10 137 | |||||
| gd 6 109 | |||||
| nso 12 113 | |||||
| ht 11 146 | |||||
| az 10 129 | |||||
| ak 8 111 | |||||
| am 15 114 | |||||
| wo 18 120 | |||||
| dv 14 150 | |||||
| te 16 150 | |||||
| si 24 156 | |||||
| tn 27 121 | |||||
| mt 32 129 | |||||
| bo 10 154 | |||||
| kk 20 118 | |||||
| fa 9 112 | |||||
| ga 21 127 | |||||
| tt 23 120 | |||||
| ko 15 116 | |||||
| Data file Used by | Data file Used by | ||||
| b/b [b] base | b/b [b] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l@ [hæu] base | |||||
| l/l@ [h1ø] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
| l/l_3 [l/] de | l/l_3 [l/] de | ||||
| l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
| l/la [hæu] base | |||||
| l/la [h1ø] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] tn | [K] tn | ||||
| l/l_a [l/3] base | l/l_a [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/le [hæu] base | |||||
| l/le [h1ø] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [&:] af | [&:] af | ||||
| l/l_front [L] sq | l/l_front [L] sq | ||||
| l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
| l/li [hæu] base | |||||
| l/li [h1ø] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| l/l_i [l/3] base | l/l_i [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| [i] sq | [i] sq | ||||
| ll/ll [L] bg | |||||
| ll/_ll [L] bg | |||||
| ll/ll [L] base | |||||
| ll/_ll [L] base | |||||
| l/l_long [l] base | l/l_long [l] base | ||||
| [l] fr | [l] fr | ||||
| l/lo [hæu] base | |||||
| l/lo [h1ø] base | |||||
| [l#] base | [l#] base | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] nso | [K] nso | ||||
| [l;] lt | [l;] lt | ||||
| [l] ru | [l] ru | ||||
| [l^] ru | [l^] ru | ||||
| l/lu [hæu] base | |||||
| l/lu [h1ø] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| l/l_u [l/3] base | l/l_u [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l_vi [l] vi | l/l_vi [l] vi | ||||
| ll/xll [L] bg | |||||
| ll/xll [L] base | |||||
| l/l_y [l/] fr | l/l_y [l/] fr | ||||
| l/tl [l] base | l/tl [l] base | ||||
| [l] fr | [l] fr | ||||
| [@] sq | [@] sq | ||||
| [V] sq | [V] sq | ||||
| [@/] sq | [@/] sq | ||||
| vowel/&_2 [a] tt | |||||
| [V] tt | |||||
| vowel/@_3 [@#] en | vowel/@_3 [@#] en | ||||
| [@] en-sc | [@] en-sc | ||||
| [I] en-sc | [I] en-sc | ||||
| [aa] zhy | [aa] zhy | ||||
| [a] hy | [a] hy | ||||
| [a] az | [a] az | ||||
| [A] tt | |||||
| vowel/aa# [O] en-us | vowel/aa# [O] en-us | ||||
| [0] en-wi | [0] en-wi | ||||
| [a2] fi | [a2] fi | ||||
| [A1] et | [A1] et | ||||
| [A] nl | [A] nl | ||||
| [a:] is | [a:] is | ||||
| [A] tt | |||||
| [a] ko | [a] ko | ||||
| vowel/aa_9 [a] fi | vowel/aa_9 [a] fi | ||||
| [a] et | [a] et | ||||
| vowel/e_5 [i] en-sc | vowel/e_5 [i] en-sc | ||||
| vowel/e_6 [e] ht | vowel/e_6 [e] ht | ||||
| [e] ak | [e] ak | ||||
| [e:] tt | |||||
| vowel/e_7 [e:] et | vowel/e_7 [e:] et | ||||
| vowel/e_8 [E:] de | vowel/e_8 [E:] de | ||||
| [e] fr | [e] fr | ||||
| vowel/ee [E] en-n | vowel/ee [E] en-n | ||||
| [E] sv | [E] sv | ||||
| [e] ka | [e] ka | ||||
| [&] tt | |||||
| vowel/e_e [E] en-sc | vowel/e_e [E] en-sc | ||||
| [E:] is | [E:] is | ||||
| vowel/ee# [E#] pl | vowel/ee# [E#] pl | ||||
| vowel/o_3 [oU] en-sc | vowel/o_3 [oU] en-sc | ||||
| [o] kk | [o] kk | ||||
| vowel/o-_3 [U] en-rp | vowel/o-_3 [U] en-rp | ||||
| [V] tt | |||||
| vowel/o-_4 [o] ro | vowel/o-_4 [o] ro | ||||
| [o] am | [o] am | ||||
| vowel/o_5 [O] da | vowel/o_5 [O] da |
| endphoneme | endphoneme | ||||
| phoneme L // velar L | phoneme L // velar L | ||||
| liquid | |||||
| lengthmod 7 | |||||
| IF nextPh(isNotVowel) THEN | |||||
| ChangePhoneme(l/2) // use 'dark' [l] after a vowel | |||||
| ENDIF | |||||
| VowelEnding(ll/xll, -40) | |||||
| IF prevPh(isPause) THEN | |||||
| FMT(ll/_ll) | |||||
| ENDIF | |||||
| FMT(ll/ll) | |||||
| import_phoneme base/L | |||||
| endphoneme | endphoneme | ||||
| liquid | liquid | ||||
| lengthmod 7 | lengthmod 7 | ||||
| IF nextPhW(isVowel) THEN | |||||
| ELSE | |||||
| IF NOT nextPhW(isVowel) THEN | |||||
| IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN | IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN | ||||
| ChangePhoneme(l/2) | ChangePhoneme(l/2) | ||||
| ELSE | ELSE | ||||
| InsertPhoneme(I2) | InsertPhoneme(I2) | ||||
| ENDIF | ENDIF | ||||
| IF prevPh(isVoiced) THEN | |||||
| ELSE | |||||
| IF NOT prevPh(isVoiced) THEN | |||||
| ChangePhoneme(s) | ChangePhoneme(s) | ||||
| ENDIF | ENDIF | ||||
| ChangePhoneme(z) | ChangePhoneme(z) |
| // use 'flag1' for front vowels | |||||
| // use 'flag1' for front vowels, 'flag2' for back vowels | |||||
| phoneme i | phoneme i | ||||
| vowel flag1 starttype #i endtype #i | vowel flag1 starttype #i endtype #i | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | |||||
| vowel flag2 starttype #u endtype #u | |||||
| length 180 | length 180 | ||||
| FMT(vowel/u) | FMT(vowel/u) | ||||
| endphoneme | endphoneme | ||||
| phoneme u2 // letter 'ю' | |||||
| vowel starttype #u endtype #u | |||||
| length 180 | |||||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN | |||||
| ChangePhoneme(y) | |||||
| ELSE | |||||
| ChangePhoneme(u) | |||||
| ENDIF | |||||
| endphoneme | |||||
| phoneme e | phoneme e | ||||
| vowel flag1 starttype #@ endtype #@ | vowel flag1 starttype #@ endtype #@ | ||||
| length 100 | |||||
| length 110 | |||||
| FMT(vowel/ii#) | FMT(vowel/ii#) | ||||
| endphoneme | endphoneme | ||||
| phoneme e2 // 'e' at start of word | |||||
| vowel starttype #@ endtype #@ | |||||
| length 100 | |||||
| IF nextVowel(isFlag1) THEN | |||||
| ChangePhoneme(e) | |||||
| ENDIF | |||||
| ChangePhoneme(V) | |||||
| endphoneme | |||||
| phoneme W | phoneme W | ||||
| vowel flag1 starttype #@ endtype #@ | vowel flag1 starttype #@ endtype #@ | ||||
| length 100 | |||||
| length 110 | |||||
| FMT(vowel/oe) | FMT(vowel/oe) | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | |||||
| length 100 | |||||
| vowel flag2 starttype #o endtype #o | |||||
| length 110 | |||||
| FMT(vowel/o_mid) | FMT(vowel/o_mid) | ||||
| endphoneme | endphoneme | ||||
| phoneme V | phoneme V | ||||
| vowel starttype #@ endtype #@ | |||||
| length 100 | |||||
| FMT(vowel/o-_3) | |||||
| vowel flag2 starttype #@ endtype #@ | |||||
| length 110 | |||||
| ipa ɯ | |||||
| FMT(vowel/@_2) | |||||
| endphoneme | endphoneme | ||||
| phoneme a | |||||
| vowel flag1 starttype #a endtype #a | |||||
| phoneme & | |||||
| vowel flag1 starttype #e endtype #e | |||||
| length 180 | length 180 | ||||
| FMT(vowel/&_2) | |||||
| FMT(vowel/ee) | |||||
| endphoneme | endphoneme | ||||
| phoneme A | phoneme A | ||||
| vowel starttype #a endtype #a | |||||
| vowel flag2 starttype #a endtype #a | |||||
| length 180 | length 180 | ||||
| IF thisPh(isFirstVowel) THEN | |||||
| ChangePhoneme(0) | |||||
| ENDIF | |||||
| IF prevVowel(0) THEN | |||||
| ChangePhoneme(0) | |||||
| IF NOT nextPhW(w) AND NOT thisPh(isTranslationGiven) THEN | |||||
| IF thisPh(isFirstVowel) THEN | |||||
| ChangePhoneme(0) | |||||
| ENDIF | |||||
| IF prevVowel(0) AND thisPh(isSecondVowel) THEN | |||||
| ChangePhoneme(0) | |||||
| ENDIF | |||||
| ENDIF | ENDIF | ||||
| FMT(vowel/aa) | |||||
| FMT(vowel/aa_8) | |||||
| endphoneme | |||||
| phoneme 0 | |||||
| vowel flag2 starttype #o endtype #o | |||||
| length 180 | |||||
| FMT(vowel/0_3) | |||||
| endphoneme | |||||
| phoneme e: | |||||
| vowel flag1 starttype #e endtype #e | |||||
| length 240 | |||||
| FMT(vowel/e_6) | |||||
| endphoneme | |||||
| phoneme I | |||||
| vowel flag1 starttype #i endtype #i | |||||
| length 110 | |||||
| FMT(vowel/ii) | |||||
| endphoneme | endphoneme | ||||
| phoneme A2 // letter 'я' | |||||
| phoneme a // letter 'я' | |||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 180 | length 180 | ||||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN | |||||
| ChangePhoneme(a) | |||||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN // front vowels | |||||
| ChangePhoneme(&) | |||||
| ENDIF | ENDIF | ||||
| ChangePhoneme(A) | ChangePhoneme(A) | ||||
| endphoneme | endphoneme | ||||
| phoneme 0 | |||||
| vowel starttype #o endtype #o | |||||
| phoneme u2 // letter 'ю' | |||||
| vowel starttype #u endtype #u | |||||
| length 180 | length 180 | ||||
| FMT(vowel/0_3) | |||||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN | |||||
| ChangePhoneme(y) | |||||
| ELSE | |||||
| ChangePhoneme(u) | |||||
| ENDIF | |||||
| endphoneme | endphoneme | ||||
| phoneme I | |||||
| vowel flag1 starttype #i endtype #i | |||||
| phoneme e2 // 'e' at start of word | |||||
| vowel starttype #@ endtype #@ | |||||
| length 100 | length 100 | ||||
| FMT(vowel/ii) | |||||
| IF nextVowel(isFlag2) THEN | |||||
| ChangePhoneme(V) | |||||
| ELSE | |||||
| ChangePhoneme(e) | |||||
| ENDIF | |||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme t | phoneme t | ||||
| import_phoneme base/t[ | |||||
| import_phoneme base2/t | |||||
| endphoneme | endphoneme | ||||
| phoneme d | phoneme d | ||||
| import_phoneme base/d[ | import_phoneme base/d[ | ||||
| endphoneme | endphoneme | ||||
| phoneme k | |||||
| vls vel stop | |||||
| IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN // back vowels | |||||
| ChangePhoneme(q) | |||||
| ENDIF | |||||
| CALL base/k | |||||
| endphoneme | |||||
| phoneme G | |||||
| import_phoneme base/Q" | |||||
| endphoneme | |||||
| phoneme g | |||||
| vcd vel frc | |||||
| IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN | |||||
| ChangePhoneme(G) | |||||
| ELSE | |||||
| ChangePhoneme(Q) | |||||
| ENDIF | |||||
| endphoneme | |||||
| phoneme l | |||||
| liquid | |||||
| IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN | |||||
| ChangePhoneme(L) | |||||
| ENDIF | |||||
| CALL base/l | |||||
| endphoneme |
| endphoneme | endphoneme | ||||
| phoneme L/ | |||||
| import_phoneme base/l/2 | |||||
| endphoneme | |||||
| phoneme L // velar L | |||||
| liquid | |||||
| lengthmod 7 | |||||
| IF nextPh(isNotVowel) THEN | |||||
| ChangePhoneme(L/) // use 'dark' [l] after a vowel | |||||
| ENDIF | |||||
| VowelEnding(ll/xll, -40) | |||||
| IF prevPh(isPause) THEN | |||||
| FMT(ll/_ll) | |||||
| ENDIF | |||||
| FMT(ll/ll) | |||||
| endphoneme | |||||
| phoneme w | phoneme w | ||||
| liquid | liquid |
| #define k_AND 1 | #define k_AND 1 | ||||
| #define k_OR 2 | #define k_OR 2 | ||||
| #define k_THEN 3 | #define k_THEN 3 | ||||
| #define k_NOT 4 | |||||
| #define kTHISSTRESS 0x800 | #define kTHISSTRESS 0x800 | ||||
| {"AND", 0, k_AND}, | {"AND", 0, k_AND}, | ||||
| {"OR", 0, k_OR}, | {"OR", 0, k_OR}, | ||||
| {"THEN", 0, k_THEN}, | {"THEN", 0, k_THEN}, | ||||
| {"NOT", 0, k_NOT}, | |||||
| {"prevPh", tWHICH_PHONEME, 0}, | {"prevPh", tWHICH_PHONEME, 0}, | ||||
| {"prevPhW", tWHICH_PHONEME, 5}, | {"prevPhW", tWHICH_PHONEME, 5}, | ||||
| {"thisPh", tWHICH_PHONEME, 1}, | {"thisPh", tWHICH_PHONEME, 1}, | ||||
| int key; | int key; | ||||
| int finish = 0; | int finish = 0; | ||||
| int word = 0; | int word = 0; | ||||
| int word2 = 0; | |||||
| int word2; | |||||
| int data; | int data; | ||||
| int bitmap; | int bitmap; | ||||
| int brackets; | int brackets; | ||||
| int not_flag; | |||||
| USHORT *prog_last_if = NULL; | USHORT *prog_last_if = NULL; | ||||
| then_count = 2; | then_count = 2; | ||||
| while(!finish) | while(!finish) | ||||
| { | { | ||||
| not_flag = 0; | |||||
| word2 = 0; | |||||
| if(prog_out >= prog_out_max) | if(prog_out >= prog_out_max) | ||||
| { | { | ||||
| error("Phoneme program too large", NULL); | error("Phoneme program too large", NULL); | ||||
| if((key = NextItem(tCONDITION)) < 0) | if((key = NextItem(tCONDITION)) < 0) | ||||
| error("Expected a condition, not '%s'",item_string); | error("Expected a condition, not '%s'",item_string); | ||||
| if((item_type == 0) && (key == k_NOT)) | |||||
| { | |||||
| not_flag = 1; | |||||
| if((key = NextItem(tCONDITION)) < 0) | |||||
| error("Expected a condition, not '%s'",item_string); | |||||
| } | |||||
| if(item_type == tWHICH_PHONEME) | if(item_type == tWHICH_PHONEME) | ||||
| { | { | ||||
| // prevPh(), thisPh(), nextPh(), next2Ph() etc | // prevPh(), thisPh(), nextPh(), next2Ph() etc | ||||
| *prog_out++ = word | i_CONDITION; | *prog_out++ = word | i_CONDITION; | ||||
| if(word2 != 0) | if(word2 != 0) | ||||
| *prog_out++ = word2; | |||||
| *prog_out++ = word2; | |||||
| if(not_flag) | |||||
| *prog_out++ = i_NOT; | |||||
| // expect AND, OR, THEN | // expect AND, OR, THEN | ||||
| switch(NextItem(tCONDITION)) | switch(NextItem(tCONDITION)) |
| unsigned short ipa1[96] = { | unsigned short ipa1[96] = { | ||||
| 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | ||||
| 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | ||||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x4c,0x271,0x14b,0x254, | |||||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254, | |||||
| 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | ||||
| 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | ||||
| 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f | 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.24 11.Sep.12"; | |||||
| const char *version_string = "1.46.25 14.Sep.12"; | |||||
| const int version_phdata = 0x014624; | const int version_phdata = 0x014624; | ||||
| int option_device_number = -1; | int option_device_number = -1; | ||||
| int instn2; | int instn2; | ||||
| int or_flag; | int or_flag; | ||||
| bool truth; | bool truth; | ||||
| bool truth2; | |||||
| int data; | int data; | ||||
| int end_flag; | int end_flag; | ||||
| int ix; | int ix; | ||||
| while((instn & 0xe000) == 0x2000) | while((instn & 0xe000) == 0x2000) | ||||
| { | { | ||||
| // process a sequence of conditions, using boolean accumulator | // process a sequence of conditions, using boolean accumulator | ||||
| truth2 = InterpretCondition(tr, control, plist, prog, worddata); | |||||
| prog += NumInstnWords(prog); | |||||
| if(*prog == i_NOT) | |||||
| { | |||||
| truth2 = truth2 ^ 1; | |||||
| prog++; | |||||
| } | |||||
| if(or_flag) | if(or_flag) | ||||
| truth = (truth || InterpretCondition(tr, control, plist, prog, worddata)); | |||||
| truth = truth || truth2; | |||||
| else | else | ||||
| truth = (truth && InterpretCondition(tr, control, plist, prog, worddata)); | |||||
| truth = truth && truth2; | |||||
| or_flag = instn & 0x1000; | or_flag = instn & 0x1000; | ||||
| prog += NumInstnWords(prog); | |||||
| instn = *prog; | instn = *prog; | ||||
| // instn = *(++prog); | |||||
| } | } | ||||
| if(truth == false) | if(truth == false) |
| #define i_RETURN 0x0001 | #define i_RETURN 0x0001 | ||||
| #define i_CONTINUE 0x0002 | #define i_CONTINUE 0x0002 | ||||
| #define i_NOT 0x0003 | |||||
| // Group 0 instrcutions with 8 bit operand. These values go into bits 8-15 of the instruction | // Group 0 instrcutions with 8 bit operand. These values go into bits 8-15 of the instruction | ||||
| #define i_CHANGE_PHONEME 0x01 | #define i_CHANGE_PHONEME 0x01 |
| tr->langopts.stress_rule = 8; // ?? 1st syllable if it is heavy, else 2nd syllable | tr->langopts.stress_rule = 8; // ?? 1st syllable if it is heavy, else 2nd syllable | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| tr->langopts.numbers = NUM_OMIT_1_HUNDRED; | tr->langopts.numbers = NUM_OMIT_1_HUNDRED; | ||||
| tr->langopts.break_numbers = 0x9999998; | |||||
| tr->langopts.max_digits = 20; | |||||
| } | } | ||||
| break; | break; | ||||
| break; | break; | ||||
| *pn++ = c; | *pn++ = c; | ||||
| if((--nx > 0) && (tr->langopts.break_numbers & (1 << nx))) | |||||
| nx--; | |||||
| if((nx > 0) && (tr->langopts.break_numbers & (1 << nx))) | |||||
| { | { | ||||
| memcpy(&num_wtab[nw++], &words[ix], sizeof(WORD_TAB)); // copy the 'words' entry for each word of numbers | memcpy(&num_wtab[nw++], &words[ix], sizeof(WORD_TAB)); // copy the 'words' entry for each word of numbers | ||||