Rolf B: Erstellung eines simplen Preprocessors

Beitrag lesen

Hallo MB,

nee, du brauchst keinen zweiten Parser.

Der erste liefert Dir doch alle relevanten Inhalte, als Baum. Und aus dem Baum musst Du nun die Zieldarstellung synthetisieren. Das ist im Vergleich zum Parser, bei dem Du ja die Eingabe verstehen musst, einfach. Vorausgesetzt, dein Baum ist präzise und detailliert genug.

Ein Beispiel für einen nicht detaillierten Baum, aus einer PHP Zuweisungsoperation entstanden sein könnte, wäre dies:

opZuweisung ziel: variable(a) quelle: $a + 2 * $b - testfunc($x)

Wenn du nun PHP nach JavaScript transpilieren wolltest, dann hilft Dir dieser Baum kaum was. Du weißt zwar, dass da eine Zuweisung an die Variable a vorliegt, aber die Quelle ist noch komplett unverstanden. Daraus kannst Du kein JavaScript synthetisieren.

Wenn Dein Baum aber sagt: Das ist eine Liste, sie hat diese Punkte, jeder Punkt hat diesen Textinhalt, dann musst Du das eigentlich nur als Markdown wieder ausgeben und dabei die Syntaxregeln von Markdown beachten.

Rolf

--
sumpsi - posui - obstruxi