Тема: AHK: Spintax с несколькими уровнями вложенности
Здравствуйте. Подскажите пожалуйста, как реализовать spintax на ahk с несколькими уровнями вложенности? На просторах рунета находил спинтакс, но он работает по типу "{Привет|Хай}" а мне необходимо как в примере ниже:
"{Привет|Здравствуй} {Ты сейчас {дома|на улице|в кафе}}?"
Скрипт который я пытался использовать:
string = {Привет|Здравствуй}
MsgBox % spintax(string)
spintax(string) {
Pos := 1
while (Pos := RegExMatch(string, "{([^}]*)}", M, Pos + StrLen(R)))
string := StrReplace(string, M, R := getRandomElement(StrSplit(M1, "|")))
return string
}
getRandomElement(Arr) {
Random rand, 1, % Arr.Count()
return Arr.RemoveAt(rand)
}