{ "isVStop", 0, phVSTOP }, | { "isVStop", 0, phVSTOP }, | ||||
{ "isVFricative", 0, phVFRICATIVE }, | { "isVFricative", 0, phVFRICATIVE }, | ||||
{ "isPalatal", 0, i_isPalatal }, | |||||
{ "isLong", 0, i_isLong }, | |||||
{ "isRhotic", 0, i_isRhotic }, | |||||
{ "isSibilant", 0, i_isSibilant }, | |||||
{ "isFlag1", 0, i_isFlag1 }, | |||||
{ "isFlag2", 0, i_isFlag2 }, | |||||
{ "isPalatal", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_PALATAL }, | |||||
{ "isLong", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_LONG }, | |||||
{ "isRhotic", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_RHOTIC }, | |||||
{ "isSibilant", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_SIBILANT }, | |||||
{ "isFlag1", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_FLAG1 }, | |||||
{ "isFlag2", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_FLAG2 }, | |||||
{ "isVel", 0, i_isVel }, | { "isVel", 0, i_isVel }, | ||||
case 0x20: | case 0x20: | ||||
// place of articulation | // place of articulation | ||||
return ((ph->phflags >> 16) & 0xf) == data; | return ((ph->phflags >> 16) & 0xf) == data; | ||||
case 0x40: | |||||
case CONDITION_IS_PHFLAG_SET: | |||||
// is a bit set in phoneme flags | // is a bit set in phoneme flags | ||||
return (ph->phflags & (1 << data)) != 0; | return (ph->phflags & (1 << data)) != 0; | ||||
case 0x80: | case 0x80: |
// place of articulation | // place of articulation | ||||
#define i_isVel 0x28 | #define i_isVel 0x28 | ||||
// phflags | |||||
#define i_isSibilant 0x45 // bit 5 in phflags | |||||
#define i_isPalatal 0x49 // bit 9 in phflags | |||||
#define i_isLong 0x55 // bit 21 in phflags | |||||
#define i_isRhotic 0x57 // bit 23 in phflags | |||||
#define i_isFlag1 0x5c | |||||
#define i_isFlag2 0x5d | |||||
#define CONDITION_IS_PHFLAG_SET 0x40 | |||||
#define i_StressLevel 0x800 | #define i_StressLevel 0x800 | ||||