def parse(x):
bot_name = re.search(
r'^class +([A-Z]\w*)(\(.*\))?:', x.replace("\\\n",""), re.MULTILINE)
if not bot_name:
raise ValueError(f"Cannot parse bot {x}")
bot_class = []
exec(
x+"\n\nbot_class[:]=["+bot_name.group(1)+']\n',
{},
{"bot_class": bot_class}
)
return bot_class[0]