Die Antwort auf Ihre erste Frage lautet: Nein. Zum zweiten "Ja, es gibt eine plausible Syntax für XML und YAML"
Dies sind Datenformate und das ist was sie angeben, mit XML und YAML viel mächtiger als JSON. Selbst JSON ist Programmiersprache agnostisch, und darüber hinaus gibt es in den Spezifikationen nichts, was die Art wäre, eine Funktion zu definieren, die ausgewertet werden kann.
Natürlich ist es einfach, etwas in XML und YAML (jeder auf seine eigene Weise) zu markieren. Sie schreiben einfach ein Programm, das das Tag beim Parsen auswertet und die Ausgabe erzeugt (aus dem String/Skalar/Complex-Typ). Das beantwortet sofort die Frage, die Sie sich selbst nicht gestellt zu haben scheinen: "In welcher Sprache wird die auszuwertende 'Zeichenkette' geschrieben?", Für die die Antwort lautet: "Welche Skriptsprache Sie auch in Ihrem Programm verwenden, um die markierte Daten "
Von einem Python-YAML-Parser ist es trivial, den Python-Interpreter aufzurufen, die Auswertung durchzuführen. Aus einer kompilierten Programmiersprache müssen Sie entweder eine Skripterweiterung aufrufen oder einen Evaluator in Ihr Programm einbauen lassen. Sie können natürlich auch durch Kompilieren und dynamisches Laden auswerten, aber das ist wahrscheinlich schwieriger als eine vorhandene skriptfähige Sprache zu verwenden.
Ihr Beispiel scheint Interpretation eines Wertes basierend auf einem Muster zu verwenden (beginnend mit einem $
, mit einem $
irgendwo in der Zeichenfolge). Das ist der falsche Weg, dies zu tun, da Sie jede einzelne Zeichenfolge analysieren und einen Escape-Mechanismus bereitstellen müssen, um eine tatsächliche $
zu schreiben. Es ist viel besser, Tagging/Attribute zu verwenden, um dem Parser tatsächlich zu zeigen, dass spezielle Anforderungen erfüllt werden müssen.
Scheint wie eine seltsame Frage für mich, könnten Sie in Xsl-Transformationen zu XML transformieren. Sie können einige Funktionen in den Transformationen aufrufen. – Derek