Danny: Parserbau

Beitrag lesen

Hi,

ich versuche gerade experimentell, selbst eine kleine Template-Engine zu entwickeln. Als Feature möchte ich auch verschachtelbare Elemente implementieren:

<!--( BLOCK 1 -->
  <!--( INCLUDE header.html test )-->
  <h1>Foo</h1>
  <p>Das ist ein Dummy-Text.</p>
  <!--( BLOCK 1.1 -->
    <p>Fusszeile</p>
  <!--)-->
<!--)-->

Das große Problem dabei ist der Algorithmus, der die Positionen der Token <!--( und )--> ermitteln soll. Allein mit regulären Ausdrücken komme ich wg. dem "nesting" nicht weit, da schon beim ersten Block das Ende der Include-Zeile markiert wird und nicht das eigentliche Ende des Blocks in der letzen Zeile.

Um die passenden Token zu finden, habe ich jetzt alle Positionen (Byte-Offset ab Stringanfang) der Tokens in einem Array gesammelt und will versuchen, durch Vergleich in mehreren Schleifen die korrekten Paare zu finden. Dabei fehlt mir aber irgendwie der Ansatz, ich komme einfach nicht auf die Lösung.

Vielleicht hat jemand von Euch schon mal sowas gemacht und kann mir einen Tipp geben...

Wäre echt nett!

freundlichen Gruß
Danny