Parameterübergabe an SciTE-Lua-Interface

  • 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.

  • Werden Anführungszeichen in Lua nicht mit vorangesteltem Backslash escaped?

    Ja, habe das auch damit probiert. Direkt als Luaskript ausgeführt funktioniert es. Übergebe ich das an die Director Extension zum Ausführen schlägt es fehl.

    Ich habe das Skript mal auf das absolute Minimum reduziert. Die Zeile zum Auswerten (der Funktionsparameter) wird hier immer in doppelte Anführungseichen gesetzt und bereits vorhandene doppelte vorab mit Backslash maskiert. (Zeilen 84 - 87)