sclass AI_CalculationBot > AttractorBot { bool greet = true; run { if (greet) say("I can calculate things for you"); } // CONFIG class CalcAttractor > Attractor { S op; L arguments; public bool matches(S s) { new Matches m; LS l = regexpFirstGroups("(\\d+)\\s*[x*]\\s*(\\d+)"); if (l(l) == 2) { op = "mul"; arguments = map bigint(l); true; } false; } run { say(str(foldl_noSeed mul(arguments))); } } *() { standardAttractors(new CalcAttractor); } }