!7 set flag DynModule. sclass TelegramFactsBot > AbstractTelegramThinkBot { void thinkAbout(S s) { NLLogicChecker_v2 c = new NLLogicChecker_v2 { bool checkExpression(Exp e, Matching m) { if (e cast Func) { if (eq(e.name, "verbPhraseFromThirdPerson")) { L l = tok_splitAtComma(javaTokWithBrackets(nlLogic_text(e.arg))); if (l(l) != 2) false; l = mapReplaceVars2(l, m.matches); if (isDollarVar(second(l)) && !isDollarVar(first(l))) ret strictPutIC(m.matches, second(l), ai_verbPhraseFromThirdPerson(first(l))); ret eqic(second(l), first(l)); } } if (e cast Eq) { Exp r = e.right; S var = nlLogic_text(e.left); if (isDollarVar(var)) if (r cast Func) pcall { if (eq(r.name, 'eval)) { S code = nlLogic_text(r.arg); temp tempAdd(hotwire_copyOver_after, voidfunc(Class c) { copyFields(mc(), c, 'telegram_msg_tl) }); O result = strOrNull(javaEval(code)); ret result != null && strictPutIC(m.matches, var, result); } } } ret super.checkExpression(e, m); } }; c.matcher = new NLStringMatcher_dollarVars_underscores; c.input = s; c.facts = mL("Random facts"); applyNLLogicFacts_v2(c, voidfunc(S s) { postMessage(s) }, ai_mL_parsedLogicExamples()); } }