{ "isFlag1", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_FLAG1 }, | { "isFlag1", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_FLAG1 }, | ||||
{ "isFlag2", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_FLAG2 }, | { "isFlag2", 0, CONDITION_IS_PHFLAG_SET | phFLAGBIT_FLAG2 }, | ||||
{ "isVel", 0, i_isVel }, | |||||
{ "isVel", 0, CONDITION_IS_PLACE_OF_ARTICULATION | phPLACE_VELAR }, | |||||
{ "isDiminished", 0, i_isDiminished }, | { "isDiminished", 0, i_isDiminished }, | ||||
{ "isUnstressed", 0, i_isUnstressed }, | { "isUnstressed", 0, i_isUnstressed }, |
switch (instn & 0xe0) | switch (instn & 0xe0) | ||||
{ | { | ||||
case CONDITION_IS_PHONEME_TYPE: | case CONDITION_IS_PHONEME_TYPE: | ||||
// phoneme type, vowel, nasal, fricative, etc | |||||
return ph->type == data; | return ph->type == data; | ||||
case 0x20: | |||||
// place of articulation | |||||
case CONDITION_IS_PLACE_OF_ARTICULATION: | |||||
return ((ph->phflags >> 16) & 0xf) == data; | return ((ph->phflags >> 16) & 0xf) == data; | ||||
case CONDITION_IS_PHFLAG_SET: | case CONDITION_IS_PHFLAG_SET: | ||||
// is a bit set in phoneme flags | |||||
return (ph->phflags & (1 << data)) != 0; | return (ph->phflags & (1 << data)) != 0; | ||||
case 0x80: | case 0x80: | ||||
switch (data) | switch (data) |
/* | /* | ||||
* Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
* email: [email protected] | * email: [email protected] | ||||
* Copyright (C) 2015-2016 Reece H. Dunn | |||||
* Copyright (C) 2015-2017 Reece H. Dunn | |||||
* | * | ||||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
#define i_isSecondVowel 0x8e | #define i_isSecondVowel 0x8e | ||||
#define i_IsTranslationGiven 0x90 | #define i_IsTranslationGiven 0x90 | ||||
// place of articulation | |||||
#define i_isVel 0x28 | |||||
#define CONDITION_IS_PHONEME_TYPE 0x00 | #define CONDITION_IS_PHONEME_TYPE 0x00 | ||||
#define CONDITION_IS_PLACE_OF_ARTICULATION 0x20 | |||||
#define CONDITION_IS_PHFLAG_SET 0x40 | #define CONDITION_IS_PHFLAG_SET 0x40 | ||||
#define i_StressLevel 0x800 | #define i_StressLevel 0x800 |