From 12db0bdd8118903bb03ff3f1058d73ceabcbf3d8 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Wed, 8 Nov 2017 23:31:48 -0500 Subject: Updated verbly (datafile versioning) --- sentence.cpp | 36 ++++++++++++------------------------ support.cpp | 12 ++++++------ vendor/verbly | 2 +- 3 files changed, 19 insertions(+), 31 deletions(-) diff --git a/sentence.cpp b/sentence.cpp index d06ba10..be24a46 100644 --- a/sentence.cpp +++ b/sentence.cpp @@ -226,8 +226,7 @@ verbly::token sentence::generateStandardNounPhrase( bool definite) const { verbly::token utter; - verbly::word sounder = noun; - verbly::word descript; + bool indefiniteArticle = false; /*if (std::bernoulli_distribution(1.0/8.0)(rng_)) { @@ -252,20 +251,10 @@ verbly::token sentence::generateStandardNounPhrase( { utter << "your"; } else if (!plural) { - if (sounder.getBaseForm().startsWithVowelSound()) - { - utter << "an"; - } else { - utter << "a"; - } + indefiniteArticle = true; } } - if (descript.isValid()) - { - utter << descript; - } - if (plural && noun.hasInflection(verbly::inflection::plural)) { utter << verbly::token(noun, verbly::inflection::plural); @@ -273,7 +262,12 @@ verbly::token sentence::generateStandardNounPhrase( utter << noun; } - return utter; + if (indefiniteArticle) + { + return verbly::token::indefiniteArticle(utter); + } else { + return utter; + } } verbly::token sentence::generateClause( @@ -446,20 +440,15 @@ verbly::token sentence::generateClause( utter << generateClause(sentence); } else if (part.nounHasSynrestr("quotation")) { - verbly::token sentence(std::set({"participle_phrase"})); - while (!sentence.isComplete()) - { - visit(sentence); - } - - utter << ("\"" + sentence.compile() + "\""); + utter << verbly::token::quote("\"", "\"", + verbly::token(std::set({"participle_phrase"}))); } else { if (part.nounHasSynrestr("genitive")) { verbly::word noun = generateStandardNoun("Passive", {"animate"}); verbly::token owner = generateStandardNounPhrase(noun, "Passive", false, true); - std::string ownerStr = owner.compile() + "'s"; - utter << ownerStr; + + utter << verbly::token::punctuation("'s", owner); } verbly::word noun = generateStandardNoun(part.getNounRole(), part.getNounSelrestrs()); @@ -665,4 +654,3 @@ void sentence::visit(verbly::token& it) const } } } - diff --git a/support.cpp b/support.cpp index 8dc6c4e..3594eb6 100644 --- a/support.cpp +++ b/support.cpp @@ -18,6 +18,12 @@ int main(int argc, char** argv) std::string configfile(argv[1]); YAML::Node config = YAML::LoadFile(configfile); + std::random_device randomDevice; + std::mt19937 rng{randomDevice()}; + + verbly::database database(config["verbly_datafile"].as()); + sentence generator(database, rng); + twitter::auth auth; auth.setConsumerKey(config["consumer_key"].as()); auth.setConsumerSecret(config["consumer_secret"].as()); @@ -26,12 +32,6 @@ int main(int argc, char** argv) twitter::client client(auth); - std::random_device randomDevice; - std::mt19937 rng{randomDevice()}; - - verbly::database database(config["verbly_datafile"].as()); - sentence generator(database, rng); - for (;;) { verbly::word adjective = database.words( diff --git a/vendor/verbly b/vendor/verbly index 59eab84..350bfdb 160000 --- a/vendor/verbly +++ b/vendor/verbly @@ -1 +1 @@ -Subproject commit 59eab842de02b2b2ba8bf53e2214b558457e6356 +Subproject commit 350bfdb5ea9b4f7e50746c50a46d8032cbc5a104 -- cgit 1.4.1