Skip to content

Commit e3851a6

Browse files
committed
Inflection-77 DictionaryLookupFunction::getFeatureValue
1 parent 52dc3d1 commit e3851a6

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

inflection/src/inflection/dialog/DictionaryLookupFunction.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33
*/
44
#include <inflection/npc.hpp>
55
#include <inflection/dialog/DictionaryLookupFunction.hpp>
6-
76
#include <inflection/dialog/DisplayValue.hpp>
87
#include <inflection/dialog/SpeakableString.hpp>
98
#include <inflection/dictionary/DictionaryMetaData.hpp>
109
#include <inflection/util/Validate.hpp>
1110
#include "inflection/tokenizer/TokenChain.hpp"
1211
#include "inflection/tokenizer/Token_Word.hpp"
1312
#include "inflection/tokenizer/TokenizerFactory.hpp"
14-
1513
namespace inflection::dialog {
1614

1715
DictionaryLookupFunction::DictionaryLookupFunction(const ::inflection::util::ULocale& locale, const ::std::vector<::std::u16string>& tags)
@@ -126,6 +124,11 @@ SpeakableString* DictionaryLookupFunction::getFeatureValue(const DisplayValue& d
126124
if (result.empty()) {
127125
return nullptr;
128126
}
127+
for(const auto& [feature, value]: displayValue.getConstraintMap()) {
128+
if (feature.getName() == u"speak") {
129+
return new SpeakableString(result, value);
130+
}
131+
}
129132
return new SpeakableString(result);
130133
}
131134

inflection/src/inflection/dialog/InflectableStringConcept-c.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ iinf_create(const IDSemanticFeatureModel* model, const IDSpeakableString* value,
5353

5454
INFLECTION_CAPI IDInflectableStringConcept*
5555
iinf_createWithDefaults(const IDSemanticFeatureModel* model, const IDSpeakableString* value,
56-
const IDDisplayValue_Constraint* defaultConstraints, int32_t defaultConstraintsLen, UErrorCode* status) {
56+
const IDDisplayValue_Constraint* defaultConstraints, int32_t defaultConstraintsLen, UErrorCode* status)
57+
{
5758
if (status != nullptr && U_SUCCESS(*status)) {
5859
try {
5960
auto defaultConstraintsMap(inflection::dialog::SemanticUtils::to_constraintMap(*npc((const inflection::dialog::SemanticFeatureModel*)model), defaultConstraints, defaultConstraintsLen));

inflection/test/resources/inflection/dialog/inflection/es.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@
222222
<test><source definiteness="definite">añeja álgebra</source><result>la añeja álgebra</result></test>
223223
<test><source>área</source><result withDemAdj="esta área"/></test>
224224

225-
<!-- New Tests for stating grammemes ~ bhaskar -->
225+
<!-- New Tests for stating grammemes -->
226226
<test><source definiteness="definite">cometa</source><initial gender="masculine"/><result number="singular" gender="masculine">el cometa</result></test>
227227
<test><source definiteness="definite">cometa</source><initial gender="feminine"/><result number="singular" gender="feminine">la cometa</result></test>
228228
<test><source definiteness="definite">QQQQ</source><initial gender="masculine" number="plural"/><result number="plural" gender="masculine">los QQQQ</result></test>

0 commit comments

Comments
 (0)