static L ai_speculate_functions = ll( f ai_spec_parseIf, f ai_spec_parseAnd, f ai_spec_tripelize, f ai_spec_parseTriple ); static S ai_speculate(fS word) { if (empty(word)) ret word; ai_withMaker('ai_speculate, r { ai_blob(word, false); pcall ping { if (isAdjective(word)) ai_postTriple(word, "is", "an adjective"); } for (S f : ai_speculate_functions) pcall ping { callF(f, word); } pcall ping { ai_spec_addQuestionsToChatLine(word); } pcall ping { ai_spec_addQuestionsToAdjective(word); } pcall ping { ai_spec_containsThePhrase(word); } pcall ping { ai_spec_parseIf(word); } pcall ping { ai_spec_possiblyIs(word); } pcall ping { ai_spec_isAQuestion(word); } pcall ping { ai_spec_substWebs(word); } pcall ping { ai_spec_apostrophS(word); } pcall ping { ai_spec_allWords(word); } pcall ping { ai_spec_numbered(word); } pcall ping { ai_spec_howMany(word); } pcall ping { ai_spec_doYouThink(word); } pcall ping { ai_spec_unquote(word); } pcall ping { ai_spec_checkFact(word); } // This involves a full-index search; do it later //pcall ping { ai_spec_similarWord(word); } //pcall ping { ai_spec_acronym(word); } }); ret word; }