aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/jdtalk/core.d25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/jdtalk/core.d b/lib/jdtalk/core.d
index c0fc376..aafe64a 100644
--- a/lib/jdtalk/core.d
+++ b/lib/jdtalk/core.d
@@ -186,3 +186,28 @@ string talkSalad(ref dict_t dict, int words) {
}
return salad.join(" ");
}
+
+string talkf(ref dict_t dict, string fmt) {
+ string[] output;
+ for (int i = 0; i < fmt.length; i++) {
+ if (fmt[i] == '%' && (i + 1) < fmt.length) {
+ switch (fmt[i + 1]) {
+ case 'a':
+ output ~= word(dict.adjective);
+ break;
+ case 'n':
+ output ~= word(dict.noun);
+ break;
+ case 'd':
+ output ~= word(dict.adverb);
+ break;
+ case 'v':
+ output ~= word(dict.verb);
+ break;
+ default:
+ continue;
+ }
+ }
+ }
+ return output.join(" ");
+}