Ich trete ein wenig auf der Stelle. Stringauswertungen mache ich gern im Lua-Interface, einige Parsingmöglichkeiten sind dort einfacher und effektiver als in AutoIt.
Nun mein Problem: Ich übergebe eine kpl. Zeile AutoIt-Code aus SciTE an meine Luafunktion. Diese muss als String übergeben werden. Da ich den Parameter in einen Lua String einfüge, kann ich alle Lua-Stringbegrenzer verwenden: '...', "...", [[...]] .
$a[$i] = $x wird zu "$a[$i] = $x"
$m["abc"] = $x wird zu '$m["abc"] = $x'
$s = "Hallo 'schöne' Welt!" wird zu [[$s = "Hallo 'schöne' Welt!"]]
aber wie kann ich solch ein (mögliches) Szenario abfangen?
$a[$a[0][0]][1] = "Hallo 'schöne' Welt!"
Durch die innenliegenden zweifach schließenden eckigen Klammern kann ich die Klammern nicht verwenden. Einfache und doppelte Anführungszeichen (egal in welcher Reihenfolge) brechen den String auf. Ersatzzeichen, z.B. Chr(1), könnte ich für eine spezielle Funktion sicher nutzen und intern wieder zurückführen, aber damit ist dann eine allgemeine Nutzung der Luafunktion eingeschränkt, weil eben diese Ersatzzeichen niemals für andere Funktionen vorkommen dürfen.
Also, ich bin offen für eure Ideen.